我有这个结构
**** child C
家长(A)
**** child B
如果我尝试在没有父项的情况下安装子B,maven会抛出一个错误,我知道按照惯例,我应该在我的存储库中安装父服务器,但有没有办法让某人拉动孩子并在安装过程中,自动安装Parent?
@edit 我将尝试更清楚,我有一个依赖于项目A的项目B(项目A是父项,与项目B中相同)我希望能够在项目B中构建,而不需要存在A我的'本地'(m2>存储库)存储库,我想某种方式,从B也安装A,这样一个将在B上行动的开发人员不必手动安装A
答案 0 :(得分:2)
长话短说:不。(不是直接,至少。)
您无法从另一个项目(但来自aggregator/multi-module项目或使用Maven Invoker Plugin或Groovy或Ant脚本等运行项目的构建。但当时在你的情况下你执行后者之一,依赖解析已经完成,并且会失败。)
你可以反过来这样做:
+- aggregator
+- pom.xml: <packaging>pom, <module>parent (A), <module>child B
|
+- parent (A)
| +- pom.xml
|
+- child B
| +- pom.xml: <parent>parent (A), <relativePath>../parent (A), <dependency>parent (A)
|
+- child C
+- pom.xml: <parent>parent (A), <relativePath>../parent (A)
构建aggregator
按此顺序构建parent (A)
和child B
,因为Maven Reactor会识别child B
对parent (A)
的依赖关系。