2015-07-21 106 views
3

Maven assembly插件會在最終的zip包中排除.gitignore文件。如何在最終輸出zip中包含.gitignore? 我試過包括**/*,但沒有工作。maven assembly插件不包括.gitignore

我的彙編文件:

<id>assembly</id> 
<includeBaseDirectory>false</includeBaseDirectory> 
<formats> 
    <format>zip</format> 
</formats> 
<fileSets> 
    <fileSet> 
     <directory>${project.build.directory}/work</directory> 
     <outputDirectory>/</outputDirectory> 
     <excludes> 
      <exclude>How*.html</exclude> 
     </excludes> 
    </fileSet> 
</fileSets>` 

Assembly插件:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.5.5</version> 
    <configuration> 
     <descriptors> 
      <descriptor>assembly/config.xml</descriptor> 
     </descriptors> 
    </configuration> 
    <executions> 
     <execution> 
      <id>build-archive</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
+0

也許這是因爲includeBaseDirectory設置爲false ..你試過把它設置爲true嗎? – SonOfSun

回答

2

經過一番研究,我發現的.gitignore和其他源代碼庫控制文件(.svn文件)被排除在最終的包。 Maven默認會這樣做。我不得不明確地設置標誌 - false來包含.gitignore文件。

作爲每行家文檔 - useDefaultExcludes -

是否標準排除模式,如那些匹配CVS和 顛覆元數據文件,應當計算影響此集合中的文件 時使用。爲了向後兼容,默認值爲 true

0

三點建議:

1在彙編文件嘗試文件元素旁邊文件集。它指定在程序集中包含哪些單個文件。通過提供文件子元素中的一個或多個來指定文件。

2-正確設置baseDirectory。例如

<baseDirectory>../</baseDirectory> 

3-或者,設置includeBaseDirectory爲true

<includeBaseDirectory>true</includeBaseDirectory> 
+0

我試過所有這些,它沒有工作。它仍然會忽略.gitignore文件 – Yasser