gpt4 book ai didi

Maven 存档器在类路径中使用未锁定的快照,但复制依赖项复制锁定的快照

转载 作者:行者123 更新时间:2023-12-02 09:09:31 25 4
gpt4 key购买 nike

我正在尝试使用 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

所以我无法运行该应用程序。

我找不到一种方法来告诉复制依赖项不翻译快照,或者告诉存档插件翻译快照。

这是 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>

最佳答案

maven-dependency-plugin 2.6 中的新选项 ( useBaseVersion ) 可以解决此问题。因此您至少需要 2.6 版本。

注意:我需要将 useBaseVersion 选项设置为 false,因为我的问题似乎与原始问题相反。所以原来的版本可能需要useBaseVersion设置为true,这是默认值。

下面是如何更改版本号并将 pom 中的 useBaseVersion 设置为 false 的示例:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<!-- need at least 2.6 for useBaseVersion-->
<version>2.6</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>

<!-- useBaseVersion=false makes the jar names match those
that maven-jar-plugin puts in the manifest classpath -->
<useBaseVersion>false</useBaseVersion>
</configuration>
</execution>
</executions>
</plugin>

关于Maven 存档器在类路径中使用未锁定的快照,但复制依赖项复制锁定的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14256291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com