私はmavenアセンブリを使用して、実行可能なjarファイルをその依存関係とリソースとともにパックしています。リソース (Spring アプリケーション コンテキスト) は jar から除外されます。を実行するmvn assembly:assembly
と、テストが実行され、ビルドが成功します。ただし、アセンブリのパッケージ化後に実行可能 jar を実行すると、FileNotFoundException
. パックされているSpring Frameworkなどの依存関係\lib
が見つかります。リソースmy-application-context.xml
ファイルも の下にパッケージ化されて\lib
います。助けていただけますか?
ここにPOMがあります:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<excludes>
<exclude>*.xml</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<excludes>
<exclude>**/*.xml</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.myapp.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
および記述子:
<formats>
<format>zip</format>
</formats>
<files>
<file>
<source>${project.basedir}/src/main/resources/my-application-context.xml</source>
<outputDirectory>lib</outputDirectory>
</file>
</files>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.bat</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>