簡體   English   中英

使maven全新安裝像maven clean + maven install一樣工作

[英]get maven clean install to work like maven clean + maven install

我有以下項目層次結構:

app
|-module1
| |-pom.xml
|-module2
| |-pom.xml
|-pom.xml

Module1和module2都將文件復制到相同的目標目錄,因此我使用應用程序的pom.xml清除了該目錄。 我的問題是,現在的執行順序是module1 [clean],module1 [install],module2 [clean],module2 [install],app [clean],app [install],因此,module1和module2放入該目錄的所有內容都會被刪除。

我想讓它先執行所有清理,然后執行所有安裝,即使我運行mvn clean install。 或者,如果在module1 [install]和module2 [install]之前還有另一種執行app [clean]的方法,那也可以。

編輯

我最終制作了一個單獨的模塊(Netbeans POM projekt),可以單獨清潔。 不是我所希望的解決方案,但它現在可以使用。

問題的根源在於,您試圖使Maven做一些與Maven的多模塊“約定”相矛盾的事情,並且與Maven對“目標目錄”的“理解”相抵觸。 Maven的反應堆按其操作方式運行是有原因的,它是為了保留Maven的“精神”(或“慣例”),即在多模塊構建中如何構造模塊。

在Maven中, target目錄應該僅屬於一個項目:每個項目都有自己的target目錄。 在您的方案中,應為appmodule1module2確實存在一個不同的target目錄。

為了實現目標保持構建過程的靈活性,我認為最好的選擇是:

  1. module1將自己的JAR輸出到其自己的target目錄( module1/target )中。
  2. module2將自己的JAR輸出到自己的target目錄( module2/target )中。
  3. app (父模塊)添加一個插件,該插件會將需要的東西從module1/targetmodule2/target收集到app/target ,並對這些工件進行任何處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM