2014-01-23 50 views
1

我已經使用Assembly插件將來自兩個工件/罐子的源合併爲單獨的單個罐子。但是,查看META-INF/maven的新jar文件的內容,有一個maven目錄,其中包含來自這兩個jar的包。爲什麼Maven在兩個罐子合併時在jar中生成一個maven目錄?

enter image description here

幾個問題:

1 - 那是什麼META-INF/maven目錄的目的是什麼?
2 - 如何/誰生成該文件,爲什麼?
3 - 是否有選項將其從存檔中刪除?
4 - 如果我們將其從檔案中刪除,會產生什麼影響?

這裏是我的插件:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <executions> 
     <execution> 
     <id>merge-two-jars</id> 
     <phase>prepare-package</phase> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     <configuration> 
      <finalName>com.ibm.scope.ext.system.agent-${scope.release}-${ibm.build.number}</finalName> 
      <appendAssemblyId>false</appendAssemblyId> 
     <descriptors> 
       <descriptor>src/main/assembly/ppk-agent-merge-agent-common.xml</descriptor> 
      </descriptors> 
      <archive> 
       <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile> 
       <addMavenDescriptor>false</addMavenDescriptor> 
      </archive> 
     </configuration> 
     </execution> 
    </executions> 

.....

+0

請附上您的'PPK代理合並代理-common.xml' – MariuszS

回答

3
  1. 信息化的目的 - 行家功能
  2. 的Maven用於信息目的
  3. 對於JAR,EAR,並WAR插件。使用<archive><addMavenDescriptor>false</addMavenDescriptor></archive>排除META-INF/mavenMWAR-27
  4. 沒有影響

重寫清單

<project> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      [...] 
      <archive> 
      <addMavenDescriptor>false</addMavenDescriptor> 
      </archive> 
     </configuration> 
     [...] 
     </plugin> 
     [...] 
</project> 

更多關於Maven的清單:Maven Archiver

+0

感謝您的反饋,如問題中所述描述中,我使用Assembly插件來生成jar;不是maven.jar.plugin ....任何想法我們如何在程序集中做到這一點? –

+0

重寫彙編插件中的'archive'配置,回答更新,試試這個,應該可以工作 – MariuszS

+0

更新'addMavenDescriptor' - 爲false,也許這也是需要從合併的jar中排除清單 – MariuszS

相關問題