3 回答

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

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版本。

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
我認(rèn)為使用 Maven 多模塊,您只需導(dǎo)航到要構(gòu)建的模塊,然后從那里運行 Maven 命令。Maven 將自動構(gòu)建具有關(guān)聯(lián)依賴項的模塊,而不會構(gòu)建不必要的模塊。
添加回答
舉報