Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Maven assembly插件向类路径清单条目添加前缀?_Java_Xml_Maven - Fatal编程技术网

Java 如何使用Maven assembly插件向类路径清单条目添加前缀?

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

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