maven-jar-pluginとmaven-dependency-pluginを使用して、アプリケーションの実行可能な「バンドル」を作成しようとしています。ほとんどの場合は正常に機能しますが、依存関係階層にスナップショットがある場合、コピー依存関係の目標は、スナップショット依存関係をロックされたスナップショット(タイムスタンプ付きのスナップショット)に変換するようです。
ただし、archiver-pluginのaddClasspathは、スナップショットの依存関係を変換しません。
- libには、foolib-1.0.1-20130108.143522-8.jarがあります。
- クラスパスにはlib/foolib-1.0.1-SNAPSHOT.jarが含まれています
そのため、アプリケーションを実行できません。
コピー依存関係にSNAPSHOTを変換しないように指示する方法、またはアーカイバプラグインにSNAPSHOTを変換するように指示する方法が見つかりません。
pom.xmlの関連するスニペットは次のとおりです。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-libs</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeScope>provided</excludeScope>
<outputDirectory>${package.dest}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${package.dest}</outputDirectory>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>${main.class}</mainClass>
</manifest>
</archive>
</configuration>
</plugin>