这是我的文件系统设置:
.m2/ <--- Local Directory
app/
pom.xml
module1/
module2/
module3/
target/ <--- Package directory
问题A
在父pom.xml
中,它具有所有模块所依赖的依赖关系。但是,当它进入compile
阶段时,module2
将需要依赖于module1
和module3
中编译的内容需要依赖于module2
中的某些内容。如果不做两到三个“maven项目”,你会怎么做呢?是否可以在每个模块上逐个运行compile
,install
和package
阶段(我宁愿执行此解决方案)?
问题B
另外,我知道当你install
模块时,所有“东西”都会更新并添加到本地仓库。当您处于compile
阶段时,默认情况下,它会从本地仓库中获取所需的所有内容(如果我错了,请更正)。此外,如果我能够实现问题A ,而不是使用本地存储来获取我的依赖关系所需的所有信息,则可以使用打包的target
目录中的相同文件?
这些问题可以通过简单的pom操作和/或添加插件来解决吗?如果可以的话,我该如何做呢?
答案 0 :(得分:1)
Maven是基于一个项目 - 一个工件的想法而构建的。在您描述的情况下,您通常会在每个模块中创建一个单独的POM,并将顶级POM指定为父级。然后,每个子模块将继承te parent的依赖关系,并可以自由添加其他模块特定的依赖关系。在顶级Pom中,然后使用声明来声明三个子模块。
一个关键优势是,如果子模块之间存在依赖关系(就像您描述的那样),那么maven会根据这些依赖关系自动找出构建它们的正确顺序。