我正在尝试使用 maven-jar-plugin 和 maven-dependency-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>