したがって、Maven は、Zip アーカイブ内の lib フォルダーに含まれる「スナップショット」jar を作成することがわかります。そのスナップショット jar には、正しい値が挿入された構成ファイルが含まれています。つまり、ファイル システム参照の代わりにクラス ローダーを使用して構成ファイルをロードすると、動作するはずです。
とにかく、構成ファイルを Zip アーカイブのルートに置かないように言われました。したがって、Maven が注入せずにアーカイブにプッシュしただけの構成ファイルは、私の場合、そもそもそこにあるはずがありません。
しかし、pom.xml に含まれる src.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 内のプロファイルの値ではないこと。それらは、私の .m2 フォルダーにある私の settings.xml のものです。しかし、settings.xml プロファイルでアクティブ化をオフにしても、この問題は解決しないようです。
<activation>
<activeByDefault>false</activeByDefault>
</activation>
繰り返しますが、実行するコマンドラインは次のとおりです。
mvn -Denv-prod clean generate-sources package
「env-prod」は、注入される値を含む pom.xml 内のプロファイルです。
何か案が?