понедельник, 31 августа 2009 г.

Удивления начинающего джаваписца

Опять maven...

Обнаружилась интересная фишка. Фат джар собранный и запаковынный на одной машине не соответствует таковым собранным на других.

Несоответствует, это значит, что при его распаковке обнаруживаются файлы .properties здорово отличающиеся от файлов чекаученых из свн. При этом настройки мавена идентичны.

Откуда он их берет, причем именно в момент сборки, науке пока не известно...

Выясню в чем проблема - отпишусь дополнительно.

upd:
Наконец то нашел время написать.
Суть проблемы была вот в чем. одноименный .properties файл уже существовал в одном из пакетов которые были в зависимостях и при сборке он заменял собой нужный файл.

т.е. на одной машине(intel/linux) он не заменял а на другой(sparc/solaris) заменял. А вот при распаковке заменял один другим. На "правильности" замены сказалась, видимо, настройка локали.

Вылечилось очень просто.
в src/main/assembly/assembly.xml надо воткнуть следующую инструкцию. По названиям тегов я думаю суть ее будет понятна и потому углубляться в ее суть не буду.


<dependencySets>
<dependencySet>
<unpack>true</unpack>
<unpackOptions>
<excludes>
<exclude>META-INF/**</exclude>
<!-- чтобы не перезаписать -->
<!-- правильный -->
<exclude>имечко.properties</exclude>
</excludes>
</unpackOptions>
</dependencySet>
</dependencySets>


соответственно если надо такую операцию провернуть с несколькимии файлами или типами файлов то придется поигтаться с масками. Которые почему то мавену задаются в форме отличной от стандартых регекспов. За что им(создателям сего поделия) направляю очередной плевок в спину.

Комментариев нет:

Отправить комментарий