2012-09-23 136 views
1

我试图将我的构建服务器信息设置为META-INF/MANIFEST.MF。当使用带有manifestEntries的maven-jar-plugin时,它工作得非常好。问题是,当我使用maven-assembly-plugin将Jar打包到一个具有依赖项的Jar中时(例如:How can I create an executable JAR with dependencies using Maven?),我无法再看到我的清单条目。我的猜测是我的MANIFEST.MF被删除,而程序集运行,但我找不到在完成清单后设置它的方式。当构建与依赖关系的jar时的ManifestEntries

这是我的pom.xml构建部分看起来像:

<build> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 

    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
     </resource> 
    </resources> 

    <plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>ConvertorMain</mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      <executions> 
       <execution> 
        <id>make-my-jar-with-dependencies</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <finalName>${project.artifactId}</finalName> 
       <archive> 
        <manifestEntries> 
         <Application-Version>${app.version.major}.${app.version.minor}.0</Application-Version> 
         <Built-By>${user}</Built-By> 
         <Git-Branch>${git.branch}</Git-Branch> 
         <Git-Commit>${git.commit}</Git-Commit> 
        </manifestEntries> 
        <addMavenDescriptor>false</addMavenDescriptor> 
       </archive> 
      </configuration> 
     </plugin> 
    </plugins> 
... 
</build> 

没有JAR-有依赖性,在MAINFEST.MF将包含:

Manifest-Version: 1.0 
Git-Commit: 35ff1f997b0c01daf44ed23425a3dc93307faaf7 
Build-Jdk: 1.7.0_03 
Built-By: Build Server 
Git-Branch: origin/HEAD 
Created-By: Apache Maven 
Application-Version: 0.2.57 
Archiver-Version: Plexus Archiver 

然后,解压缩-q -c convertor-1.0-jar -with-dependencies.jar META-INF/MANIFEST.MF转储:

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Built-By: eranh 
Build-Jdk: 1.6.0_35 
Main-Class: ConvertorMain 

回答

1

您只需将归档部分从maven-jar-plugin配置复制到maven-assembly-plugin。

+0

这样做。谢谢!我确信我在无尽的尝试中尝试过 - 可能做错了...... :) – eranh