Java 如何使用Maven assembly插件向类路径清单条目添加前缀?
我正在使用Maven 3.x中的汇编插件创建一个tar球,其中包括项目JAR及其依赖项。按照惯例,我将项目JAR放在根目录下,所有依赖项JAR放在目录下,例如Java 如何使用Maven assembly插件向类路径清单条目添加前缀?,java,xml,maven,Java,Xml,Maven,我正在使用Maven 3.x中的汇编插件创建一个tar球,其中包括项目JAR及其依赖项。按照惯例,我将项目JAR放在根目录下,所有依赖项JAR放在目录下,例如 ├── hpcmom-cmaes-1.1.9-SNAPSHOT.jar └── lib ├── akka-actor_2.10-2.2.3.jar ├── akka-agent_2.10-2.2.3.jar ├── akka-kernel_2.10-2.2.3.jar ├── akka-remote_2.1
├── hpcmom-cmaes-1.1.9-SNAPSHOT.jar
└── lib
├── akka-actor_2.10-2.2.3.jar
├── akka-agent_2.10-2.2.3.jar
├── akka-kernel_2.10-2.2.3.jar
├── akka-remote_2.10-2.2.3.jar
├── akka-slf4j_2.10-2.2.3.jar
├── akka-zeromq_2.10-2.2.3.jar
生成此命令的程序集定义为:
<assembly>
<id>cmaes-bin</id>
<baseDirectory>${pom.version}/hpcmom-cmaes</baseDirectory>
<formats>
<format>tar.gz</format>
</formats>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory></directory>
<outputDirectory></outputDirectory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>COPYING*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<fileSet>
<directory>hpcmom-cmaes/target</directory>
<outputDirectory></outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
我想得到的是:
Class-Path: lib/akka-actor_2.10-2.2.3.jar lib/akka-agent_2.10-2.2.3.jar lib/akka-kernel_2.10-2.2.3.jar lib/akka-remote_2.10-2.2.3.jar lib/akka-slf4j_2.10-2.2.3.jar lib/akka-zeromq_2.10-2.2.3.jar
更新:
在父pom.xml中,程序集插件配置如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/cmaes-bin.xml</descriptor>
<descriptor>src/main/assembly/cmaes-src.xml</descriptor>
</descriptors>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
org.apache.maven.plugins
maven汇编插件
src/main/assembly/cmaes-bin.xml
src/main/assembly/cmaes-src.xml
真的
解放党/
尝试将以下插件添加到pom中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath> <-- don't know if this is needed -->
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
org.apache.maven.plugins
maven jar插件
是的,我确实这样做了,没有帮助。我是在父pom.xml中完成的。你能告诉我们组装插件是如何配置的吗?我认为清单不受创建tar的程序集的影响。另外,如何收集依赖项?你使用依赖插件吗?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath> <-- don't know if this is needed -->
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>