Maven模塊+構建單個特定模塊我有一個父項目多模塊Maven項目P和三個子模塊A,B和C。這兩個B和C是戰項目,都依賴于A。我可以輸入mvn compile在P和擁有所有的子模塊正確的編譯的。當我想為特定模塊執行操作時,問題就來了。我希望能夠為項目打包一個war B,但是當我從B目錄運行package命令時,它會抱怨它找不到依賴項A。我從這個問題中理解:Maven和依賴模塊可能Maven并不是真的設計用于這種類型的依賴解析,但這引出了如何打包的問題B?mvn package我真的想要的時候是否必須運行整個項目層次結構B?每次要打包時,是否必須將A的快照安裝到本地存儲庫中B?當A仍處于活躍開發階段時,第二種情況并不是很有趣。這里有什么最佳做法?
3 回答

眼眸繁星
TA貢獻1873條經驗 獲得超9個贊
這里有什么最佳做法?
使用Maven 高級反應器選項,更具體地說:
-pl, --projects Build specified reactor projects instead of all projects-am, --also-make If project list is specified, also build projects required by the list
所以只需cd
進入父P目錄并運行:
mvn install -pl B -am
這將構建B和B所需的模塊。
請注意,如果引用的artifactId
內容與目錄名稱不同,則需要使用冒號:
mvn install -pl :B -am

aluckdog
TA貢獻1847條經驗 獲得超7個贊
Maven絕對是為這種類型的依賴而設計的。
mvn package
將不會在您的本地存儲庫中安裝任何內容,它只是打包項目并將其保留在目標文件夾中。
不要mvn install
在父項目(A),這一切的子模塊將被安裝在您的計算機的Maven倉庫,如果沒有改變,你只需要編譯/包的子模塊(B)和Maven將已經打包和安裝的依賴項恰到好處。
mvn install
如果您更新了部分代碼,則只需在父項目中使用a 。
添加回答
舉報
0/150
提交
取消