プロファイルでmavenアセンブリプラグインを使用して、アプリケーションの構造を含むzipファイルを生成し、パスが正しいことを保証しています。
<profiles>
<profile>
<id>desenvolvimento</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<arquivo_tef4j>classpath:tef4j.properties</arquivo_tef4j>
<arquivo_bd>classpath:bancoDados.properties</arquivo_bd>
<arquivo_aplicacao>classpath:aplicacao.properties</arquivo_aplicacao>
<modelo_dav>classpath:modelos_relatorio/dav.rptdesign</modelo_dav>
</properties>
</profile>
<profile>
<id>producao</id>
<properties>
<arquivo_tef4j>file:../config/tef4j.properties</arquivo_tef4j>
<arquivo_bd>file:../config/bancoDados.properties</arquivo_bd>
<arquivo_aplicacao>file:../config/aplicacao.properties</arquivo_aplicacao>
<modelo_dav>file:../modelos/dav.rptdesign</modelo_dav>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<finalName>${project.artifactId}</finalName>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>../lib/</classpathPrefix>
<mainClass>com.hrgi.pdv.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.hrgi.pdv.App</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
「desenvolvimento」という名前のプロファイルはIDEでの開発に使用され、もう1つのプロファイルはプロダクションのzipファイルを生成するために使用されます。ご覧のとおり、プロファイルの違いは基本的にプロパティ値にあります。「desenvolvimento」プロファイルを使用している場合は正常に機能していますが、2番目のプロファイルのプロパティ「modelo_dav」に問題があります。このプロパティは「aplicacao.properties」で使用されますが、アセンブリプラグインはプロパティ$ {modelo_dav}を変更せずに「aplicacao.properties」をコピーします。jarファイルを開くと、「aplicacao.properties」ファイルの値が正しいため、 mavenがプロパティを変更する前に、アセンブリプラグインがファイルをコピーしていると想定しています。Mavenがプロパティを変更した後、アセンブリプラグインにファイルを強制的にコピーさせる方法はありますか?もう1つの質問は、最終的なjarファイルからプロパティファイルを削除するにはどうすればよいですか?