3 回答

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

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

TA貢獻1804條經驗 獲得超3個贊
我認為使用 Maven 多模塊,您只需導航到要構建的模塊,然后從那里運行 Maven 命令。Maven 將自動構建具有關聯依賴項的模塊,而不會構建不必要的模塊。
添加回答
舉報