如何使用maven将Class-Path添加到清单文件中

时间:2014-05-15 20:31:36

标签: java maven manifest

使用maven-jar-plugin时
我想在Manifest.mf中添加条目
因此它将包含: 班级路径:。
当我将此条目添加到Pom:

<Class-Path>.</Class-Path> 

它将创建具有所有依赖关系的Class-Path
像: 班级路径:。 jar1name.jar jar2name.jar等
而不仅仅是 班级路径:。
有没有办法避免maven将所有jar名称添加到Class-Path?
感谢

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                    <manifestEntries>
                        <Built-By>Me</Built-By>
            <Class-Path>.</Class-Path> 
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

1 个答案:

答案 0 :(得分:22)

这就是诀窍
省略addClasspath并添加manifestEntries
现在,log4j.properties可以驻留在jar之外 - 并且仍然可以找到......

                <manifest>
                    <addClasspath>true</addClasspath>
                </manifest>

这是有效的:

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifestEntries>
                        <Built-By>Me</Built-By>
             <Class-Path>.</Class-Path>
                    </manifestEntries>
                </archive>
            </configuration>
        </plugin>

输出:

 Manifest-Version: 1.0
 Archiver-Version: Plexus Archiver
 Created-By: Apache Maven
 Build-Jdk: 1.6.0_45
 Built-By: Me
 Class-Path: .