2012-09-23 35 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