Похожие чаты

I have to execute a build which generates a WAR

file. I see that the checksum for every WAR generated is always different from the last inspite of no code changes. I came across this issue (https://stackoverflow.com/questions/53006925/gradle-same-checksum-for-repeated-build/53012937#53012937) which says

The generated class files get a creation/modification timestamp of the time they were created
This modification date is added as metadata to the generated jar/zip archives which results in the checksum differences


How can I verify if it indeed is true? I do not see sources in the answer

9 ответов

9 просмотров
Roy- Автор вопроса

I found diffoscope https://reproducible-builds.org/tools/ and this issue for Ant (https://bz.apache.org/bugzilla/show_bug.cgi?id=61269) which means the issue is true. Seems there is no native way to compare the differences, though I found the diff (time diff in my case) using the diffoscope

Did you try what's described in the documentation? tasks.withType(AbstractArchiveTask).configureEach { preserveFileTimestamps = false reproducibleFileOrder = true } https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives

Roy- Автор вопроса

I do not use gradle, unfortunately. I use Ant

Roy- Автор вопроса
Dmytro Buryak
Ah, ok, got it

my question was how do I verify why my build is not reproducible

Roy
my question was how do I verify why my build is no...

Because file attributes are added to zip/jar. And your compiled class files, and basically any other generated resource (log4j/logback configs, application.properties, etc.) will have the timestamp of the time when you executed build.

Roy
my question was how do I verify why my build is no...

Here's what I find. Seems, it's not supported. Only manual workaround - set fixed timestamp to all files, and order files ((( https://bz.apache.org/bugzilla/show_bug.cgi?id=61269

Roy- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Hi everyone! I have a two-folded message to share today. First: updates and news, as we are being asked for those. We still want to go like we did the last 6 years: we w...
Marten | Unibright.io
31
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
generic procedure function test<T>(param: T); type case T of longint: NewT = word; longword: NewT = byte; end; var v1: NewT; Как это можно сделать? Чтобы у меня...
notme
21
Guys, mexc or gate.io (only exchanges with the token I need, unfortunately): depositing xmr, not withdrawing, is safe rn, or can fall for shotgun kyc? (I heard gate is alread...
another one bites the dust
20
The cynical view of ETFs in crypto is that it denotes the capture of the industry leading projects like Bitcoin by legacy/establishment infrastructure. A glass half full (or ...
ZecMec 21
1
Whoa, did you guys see this FUNToken Seed Grant announcement? 💸
Noah Noure
37
Делал задачу вот такую https://stepik.org/lesson/4985/step/9?unit=1083 получилось такое https://play.haskell.org/saved/ipKrepqe оно работает, тестов много не писал, но работае...
Fedor
22
hello guys, I have a laptop, if you connect wired headphones, the sound will come from the headphones and the built-in speakers AT THE SAME TIME. How can I make the sound com...
El Pepe
21
Всем привет, прошу совета по сложившейся ситуации: Windows приложение подключается к БД MySQL используя Firedac. При работе с версией MySQL 5.7 все отлично, но когда подключаю...
Constantine
6
Карта сайта