2010-10-19 14 views
1

我有一個單獨的git倉庫,用於我無法控制的文檔模板,但其內容需要作爲文件夾包含在我的最終WAR中。這些版本並不重要,打包戰爭時應始終使用最新版本。包括Git回購內容作爲Subdir使用Maven

這是可能與Maven或我需要單獨編寫腳本?我非常想避免不惜一切代價使用git子模塊。

回答

2

這是可能與Maven或我需要單獨編寫腳本?我非常想避免不惜一切代價使用git子模塊。

應該可以使用Maven SCM Plugin及其scm:checkout目標是讓你的git倉庫的內容在prepare-package階段(提供在類似connectionUrl配置所有需要的信息,該checkoutDirectory等)(和在package期間將它打包在你的戰爭中)。就像這樣:

[...] 
<build> 
    [...] 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-scm-plugin</artifactId> 
     <version>1.1</version> 
     <executions> 
     <execution> 
      <phase>prepare-package</phase> 
      <goals> 
      <goal>checkout</goal> 
      </goals> 
      <configuration> 
      <checkoutDirectory>${project.build.directory}/${project.build.finalName}/somepath</checkoutDirectory> 
      <connectionUrl>scm:git:git://server_name[:port]/path_to_repository</connectionUrl> 
      ... 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    [...] 
    </plugins 
    [...] 
</build> 
[...] 
+0

完美,謝謝!十分優雅。 – 2010-10-20 15:42:23

+0

@Jake不客氣。我忘了提到這一點,但將上述內容放在最終交付時使用的配置文件中,以避免在開發過程中結帳可能是明智的做法。 – 2010-10-20 15:48:21

0

結賬戰爭資源的部分here

只需點webResoruces配置到你的混帳回購協議,這將被包含在了戰爭。 你可能會想爲.git文件夾添加一個忽略選項(除非你想在戰爭中使用所有git的工件)。