Получается, что Maven создает банку «снимка», которая включается в папку lib внутри архива Zip. Этот моментальный снимок jar содержит файлы конфигурации с правильными значениями. Другими словами, если вы загружаете свои файлы конфигурации, используя загрузчик классов вместо ссылки на файловую систему, это должно работать.
Во всяком случае, мне сказали не помещать файлы конфигурации в корень архива Zip. Таким образом, файлы конфигурации, которые Maven просто вставлял в архив, не вставляя их, в моем случае даже не должны присутствовать.
Но вот новое содержимое моего файла src.xml, которое включено в файл pom.xml:
<assembly>
<id>bin</id>
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<directory>src/main/bin</directory>
<outputDirectory>/bin</outputDirectory>
<includes>
<include>**/*.sh</include>
</includes>
<fileMode>777</fileMode>
</fileSet>
<fileSet>
<directory>lib</directory>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>**/*.jar</include>
</includes>
</fileSet>
<!-- Wrapper files -->
<fileSet>
<directory>lib/wrapper</directory>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/bin/wrapper</directory>
<outputDirectory>/bin/wrapper</outputDirectory>
<includes>
<include>**/*</include>
</includes>
<fileMode>777</fileMode>
</fileSet>
<fileSet>
<directory>src/main/conf</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>**/*</include>
</includes>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<includes>
<include>*:jar:*</include>
</includes>
<excludes>
<exclude>*:sources</exclude>
</excludes>
</dependencySet>
</dependencySets></assembly>
Это все еще выводит jar и zip архив, но, поскольку zip содержит jar снимка, все должно быть в порядке.
КРОМЕ ... (и это может быть для другого поста, поэтому дайте мне знать, если я уйду от темы для этого вопроса)
То, что значения, введенные в конфигурационные файлы, не совпадают с профилями в моем файле POM.xml. Они из моего файла settings.xml, который находится в моей папке .m2. Но отключение активации в профиле settings.xml, похоже, не решает эту проблему:
<activation>
<activeByDefault>false</activeByDefault>
</activation>
Снова вот командная строка, которую я запускаю:
mvn -Denv-prod clean generate-sources package
Где "env-prod" - это профиль в файле pom.xml, содержащий значения для внедрения.
Есть идеи?