Maven-2:模块依赖于同一项目中的另一个(两个问题)

时间:2013-01-23 20:19:29

标签: maven maven-2 module multi-module

这是我的文件系统设置:

.m2/                 <--- Local Directory
app/
    pom.xml
    module1/
    module2/
    module3/
    target/          <--- Package directory

问题A

在父pom.xml中,它具有所有模块所依赖的依赖关系。但是,当它进入compile阶段时,module2将需要依赖于module1module3中编译的内容需要依赖于module2中的某些内容。如果不做两到三个“maven项目”,你会怎么做呢?是否可以在每个模块上逐个运行compileinstallpackage阶段(我宁愿执行此解决方案)?

问题B

另外,我知道当你install模块时,所有“东西”都会更新并添加到本地仓库。当您处于compile阶段时,默认情况下,它会从本地仓库中获取所需的所有内容(如果我错了,请更正)。此外,如果我能够实现问题A ,而不是使用本地存储来获取我的依赖关系所需的所有信息,则可以使用打包的target目录中的相同文件?

这些问题可以通过简单的pom操作和/或添加插件来解决吗?如果可以的话,我该如何做呢?

1 个答案:

答案 0 :(得分:1)

Maven是基于一个项目 - 一个工件的想法而构建的。在您描述的情况下,您通常会在每个模块中创建一个单独的POM,并将顶级POM指定为父级。然后,每个子模块将继承te parent的依赖关系,并可以自由添加其他模块特定的依赖关系。在顶级Pom中,然后使用声明来声明三个子模块。

一个关键优势是,如果子模块之间存在依赖关系(就像您描述的那样),那么maven会根据这些依赖关系自动找出构建它们的正确顺序。