LINUX.ORG.RU

Загадка: как управлять порядком файлов в jar-архиве (на файловой системе ext4)?

 ,


0

1

Сабж. Суть такова - есть две машины где собирается gradle одна и таже куча сорцов в jar. На машинах градл и жава совершенно одинаковые, а порядок файлов в получившемся jar разный, отчего возникает глюк в недрах спринга.

Задача: добиться порядка файлов который приводит к воспроизведению глюка.

мой.jar
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Defl:N        2   0% 2016-02-05 15:44 00000000  META-INF/
     160  Defl:N      130  19% 2016-02-05 15:44 2893ca74  META-INF/MANIFEST.MF
       0  Defl:N        2   0% 2016-02-05 15:44 00000000  com/
       0  Defl:N        2   0% 2016-02-05 15:44 00000000  com/test/
       0  Defl:N        2   0% 2016-02-05 15:44 00000000  com/test/rest/
     781  Defl:N      444  43% 2016-02-05 15:44 c2fc9d16  com/test/rest/ProcessesApi$1.class
   14745  Defl:N     4789  68% 2016-02-05 15:44 e1ddfbd4  com/test/rest/DataApi.class
    3107  Defl:N     1285  59% 2016-02-05 15:44 a36fe50f  com/test/rest/SettingsApi.class
   14281  Defl:N     5480  62% 2016-02-05 15:44 2ffeb55a  com/test/rest/ProcessesApi.class
    1576  Defl:N      687  56% 2016-02-05 15:44 ee3a4d6c  com/test/ApplicationWeb.class
       0  Defl:N        2   0% 2016-02-05 15:44 00000000  com/test/api/

глючный.jar
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Defl:N        2   0% 2016-02-05 15:41 00000000  META-INF/
     160  Defl:N      130  19% 2016-02-05 15:41 2893ca74  META-INF/MANIFEST.MF
       0  Defl:N        2   0% 2016-02-05 15:41 00000000  com/
       0  Defl:N        2   0% 2016-02-05 15:41 00000000  com/test/
       0  Defl:N        2   0% 2016-02-05 15:41 00000000  com/test/model/
    4126  Defl:N     1663  60% 2016-02-05 15:41 22604ce5  com/test/model/FactDetail.class
   15893  Defl:N     4680  71% 2016-02-05 15:41 c43aef71  com/test/model/Message.class
     776  Defl:N      397  49% 2016-02-05 15:41 6ef9e52c  com/test/model/ConstantsRegistry$Constant.class
    5813  Defl:N     2174  63% 2016-02-05 15:41 db4ad7af  com/test/model/ExternalEntity.class
    3258  Defl:N     1446  56% 2016-02-05 15:41 f222bd50  com/test/model/UserSetting.class

На машине где глючная сборка стоит убунта, у меня debian.

Эксперимент показал:

1) что порядок файлов в jar совпадает с выводом `ls -1U`, т.е. задача сводится к управлению оным на ext4.

2) перепаковка кривого jar на моей машине исправляет проблему, т.е. ключ в порядке файлов

Перемещено JB из talks

Deleted

Последнее исправление: Deleted (всего исправлений: 3)

Ответ на: комментарий от fjfalcon

тут только файлы из нашего проекта + spring-boot (на примере их не видно), зависимости попадают в my.jar/lib

перепаковка бажного jar на моей машине привела к тому что стал работать правильно, т.е. косяк гдето тут

Deleted
()
Ответ на: комментарий от fjfalcon

дело на файловой системе, только что проверил

Deleted
()

добиться порядка файлов который приводит к воспроизведению глюка.

Вот так работает?

zip archive -@ < filelist.txt

управлению оным на ext4.

Порядок зависит от 0xEC __le32 s_hash_seed[4] HTREE hash seed. Правда не совсем ясно, что случится, если затравку поменять на существующей системе.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 2)
Ответ на: комментарий от i-rinat

Вот так работает?

Да у меня и так есть jar файл с кривым порядком.

Во hashseed я нашел, а сменить его похоже нельзя, но хочется.

Можно сказать вопрос решен.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.