Java Maven jar插件-快照依赖项的类路径条目错误
我正在使用Java Maven jar插件-快照依赖项的类路径条目错误,java,maven,jar,Java,Maven,Jar,我正在使用maven-jar-plugin构建jar,并使用maven-assembly-plugin将所有依赖项放在lib/目录中的jar旁边 如果我在这个项目中使用快照依赖项,那么类路径入口点对该依赖项执行不同的JAR,然后是实际打包的依赖项 以下是一个例子: <dependency> <groupId>x.y.z</groupId> <artifactId>artifact</artifactId> <
maven-jar-plugin
构建jar,并使用maven-assembly-plugin
将所有依赖项放在lib/
目录中的jar
旁边
如果我在这个项目中使用快照依赖项,那么类路径入口点对该依赖项执行不同的JAR
,然后是实际打包的依赖项
以下是一个例子:
<dependency>
<groupId>x.y.z</groupId>
<artifactId>artifact</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<finalName>${dist.name}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<descriptor>${basedir}/assembly.xml</descriptor>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
<outputDirectory>${dist.dir}</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven汇编插件
2.2.2
装配
包裹
附属的
${project.build.directory}
${dist.name}
假的
${basedir}/assembly.xml
org.apache.maven.plugins
maven jar插件
2.3.1
真的
解放党/
.
${dist.dir}
试验罐
您遇到的问题,在最新的3.0.2版本中尚未解决。最可能的核心问题是下游库
通过指定Maven Archiver不为快照创建唯一版本,您可以很容易地解决这个问题。这由清单配置下的参数控制,该参数默认为true
。因此,您可以将Jar插件的配置更改为:
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
<!-- rest of configuration -->
</archive>
<outputDirectory>${dist.dir}</outputDirectory>
</configuration>
<!-- the executions -->
</plugin>
maven jar插件
3.0.2
真的
解放党/
假的
${dist.dir}
注意,jar插件的版本2.3.1很旧,你应该考虑更新到最新的3.0.2.
这里仍然有3.1.03.2.0也受到影响。<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<useUniqueVersions>false</useUniqueVersions>
</manifest>
<!-- rest of configuration -->
</archive>
<outputDirectory>${dist.dir}</outputDirectory>
</configuration>
<!-- the executions -->
</plugin>