亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在maven中管理多應用程序項目?

如何在maven中管理多應用程序項目?

千巷貓影 2023-10-12 20:43:07
我目前正在嘗試將多應用程序項目從 遷移Ant到Maven.目前該項目由多個包組成,創建某種依賴關系樹,沒有循環依賴關系。這棵樹的葉子是“應用程序”包,包含一個Main. 中間節點是“庫”包,由其他庫“包”或“應用程序”包使用。允許節點“一起生長”為單個節點或葉。我發現,這些包可能應該被分組到 Maven 模塊中,我現在有一個與此類似的結構:root    - lib1    - lib1A (depends on lib1)    - lib1B (depends on lib1)    - app1A (depends on lib1A)    - lib2  (depends on lib1B)    - lib2A (depends on lib2)    - lib2B (depends on lib2)    - app2  (depends on lib2A and lib2B)    - lib3  (depends on lib2A and lib2B)    - app3A (depends on lib3)    - app3B (depends on lib3)基本上,一個庫和一個應用程序可以依賴于一個或多個其他庫?,F在我希望能夠單獨構建每個應用程序并為其創建一個可執行的 jar。我現在嘗試執行的方法如下:配置用于創建可執行 jar 的pom.xmlevery 。appmaven-assembly-plugin為特定應用程序構建每個所需的模塊。構建應用程序模塊,這會生成可執行 jar。因此,構建app2將構建lib1、lib1A、lib1B、lib2、lib2A和lib2B最后app2。然而,為了自動化構建,我需要為每個應用程序創建一個構建腳本,它負責構建所有需要的依賴項,而 Maven 應該已經自己完成了。另外,如果我想一次構建多個應用程序,我需要多次構建所有庫,或者自己跟蹤已經構建的模塊。由于我是 Maven 新手,我不確定這是否是管理此類多應用程序項目的正確方法。因此,我尋求一些有關如何正確管理此用例的建議。編輯:為了澄清我希望能夠做什么:使用其依賴項構建單個應用程序,而不構建所有應用程序(在父 pom 上運行 Maven)。構建多個應用程序(不是全部)及其依賴項,而無需多次構建依賴項。
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

如果您在相應的 POM 中定義依賴項并構建整個項目(在根級別),那么 Maven 會自動按拓撲對模塊進行排序,這意味著每個模塊構建一次,并且一切都按正確的順序完成。



查看完整回答
反對 回復 2023-10-12
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

我現在使用一個父項目,它定義了maven版本、公共依賴項和公共插件配置。
父項目還在module-tags 中定義了它的子模塊。
每個子模塊都引用該父項目并使用相同的版本。
為了構建應用程序,我在父項目中運行 Maven,使用-pl和標志。?該標志告訴 Maven 僅構建列出的模塊,而不是構建整個項目。?該標志告訴 Maven 還構建所需的依賴項。?示例:?給定以下結構:
-pl
-am

parent

---- lib1

---- lib1A (depends on lib1)

---- lib1B (depends on lib1)

---- lib2 (depends on lib1B)

---- lib2A (depends on lib2)

---- lib2B (depends on lib2)

---- app1A (depends on lib1A)

---- app2A (depends on lib2A)

---- app2B (depends on lib2B)

執行將構建除和mvn clean install -pl app1A,app2A -am之外的所有模塊。 此外, module被使用且僅被構建一次。 app2Blib2B

lib1app1Aapp2A


通常,您希望獨立地對每個模塊進行版本控制,但在我們的例子中,這將帶來巨大的工作量,因為我們有很多模塊構建在彼此之上。“最低”模塊(lib1在示例中)的微小變化將導致幾乎每個模塊的變化。

因此,在這種情況下,我們需要增加每個版本號并更新所有模塊中所有引用的依賴項。

相反,我們決定始終重建所有依賴項,從而生成始終最新的 Jar。這就是為什么我們只管理父項目中的maven版本。


查看完整回答
反對 回復 2023-10-12
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

我認為使用 Maven 多模塊,您只需導航到要構建的模塊,然后從那里運行 Maven 命令。Maven 將自動構建具有關聯依賴項的模塊,而不會構建不必要的模塊。

查看完整回答
反對 回復 2023-10-12
  • 3 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號