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
提交
取消