第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在maven中管理多應(yīng)用程序項目?

如何在maven中管理多應(yīng)用程序項目?

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

3 回答

?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗 獲得超6個贊

如果您在相應(yīng)的 POM 中定義依賴項并構(gòu)建整個項目(在根級別),那么 Maven 會自動按拓?fù)鋵δK進(jìn)行排序,這意味著每個模塊構(gòu)建一次,并且一切都按正確的順序完成。



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

TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊

我現(xiàn)在使用一個父項目,它定義了maven版本、公共依賴項和公共插件配置。
父項目還在module-tags 中定義了它的子模塊。
每個子模塊都引用該父項目并使用相同的版本。
為了構(gòu)建應(yīng)用程序,我在父項目中運行 Maven,使用-pl和標(biāo)志。?該標(biāo)志告訴 Maven 僅構(gòu)建列出的模塊,而不是構(gòu)建整個項目。?該標(biāo)志告訴 Maven 還構(gòu)建所需的依賴項。?示例:?給定以下結(jié)構(gòu):
-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)

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

lib1app1Aapp2A


通常,您希望獨立地對每個模塊進(jìn)行版本控制,但在我們的例子中,這將帶來巨大的工作量,因為我們有很多模塊構(gòu)建在彼此之上?!白畹汀蹦K(lib1在示例中)的微小變化將導(dǎo)致幾乎每個模塊的變化。

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

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


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

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊

我認(rèn)為使用 Maven 多模塊,您只需導(dǎo)航到要構(gòu)建的模塊,然后從那里運行 Maven 命令。Maven 將自動構(gòu)建具有關(guān)聯(lián)依賴項的模塊,而不會構(gòu)建不必要的模塊。

查看完整回答
反對 回復(fù) 2023-10-12
  • 3 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號