2015-01-16 37 views
0

我有很大數量的項目,我正在遷移到maven ...但我有幾個限制。maven安裝到.m2和另一個文件夾

其中之一是將生成的結果留在特定的文件夾中。

我想讓maven將項目工件安裝到本地存儲庫(.m2和往常一樣,因爲從一個到另一個都有依賴關係),並且將jar/wars/ears文件放到我引用的自定義文件夾中之前。

我已經用這個:

<project> 
    ... 
    <build> 
     <directory>${basedir}/../../target/</directory> 
     <plugins> 
     </plugins> 
    </build> 
</project> 

的proyect由幾個的.ear和.jar,我們用於運行許多螞蟻得到某些文件夾中生成的那些文件。

我試圖把這些文件從maven的那個文件夾中,所以我有我在這裏顯示的每個pom完全相同的代碼,但是當我運行maven時,除最後一個之外的所有文件都存放在文件夾中(因爲每個pom都會清理該文件夾)

+1

目前還不清楚你要完成什麼; maven軟件包會組裝這個工件並將它放到目標文件夾中,mvn install會將這個工件複製到〜/ .m2/...我不知道是否有一個Maven插件可以將這個工件複製到其他地方,或者你可以輕鬆地自己寫一個。什麼被刪除? –

+0

你說得對,我要再次編輯這個問題。無論如何,這個proyect由幾個.ear和.jar組成,他們用來運行很多螞蟻來獲取某些文件夾中生成的文件。我試圖把這些文件放在maven的那個文件夾中,所以我在每個pom中都顯示了完全相同的代碼,但是當我運行maven時,除了最後一個文件都存放在文件夾中(因爲每個pom都會清理它文件夾我supose) – chomsky

回答

1

如果只想將包複製到其他路徑,可以使用maven-antrun-plugin來執行此操作。

您可以配置插件是這樣的:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
      <id>config</id> 
      <phase>install</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <target> 
        <copy todir="${the.custom.folder}" overwrite="true"> 
         <fileset dir="${project.build.directory}" includes="**/*.jar **/*.ear" /> 
        </copy> 
       </target> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

也看一些僞影庫,如ArtifactoryNexus

+0

我我知道螞蟻插件,但我想完成的是從螞蟻遷移到Maven。但是,我開始相信Maven本身不能做我想做的事情,所以我要檢查這是一個正確的答案。 – chomsky

+0

@chomsky現在正在遷移,請考慮使用gradle。它比maven更「標準化」,然後會給你更多的靈活性。在這裏看一個很好的比較:http://www.drdobbs.com/jvm/why-build-your-java-projects-with-gradle/240168608 –

+0

這是一家保險公司,所以他們的技術遷移很慢。無論如何感謝您的建議,我會稍後再檢查 – chomsky

相關問題