我有多个 Maven 项目,要在它们之间添加依赖项,我只需将其添加到 POM 中,例如:
<dependency>
<groupId>com.company</groupId>
<artifactId>XMLManagement</artifactId>
<version>1.0</version>
</dependency>
我正在使用 eclipse,一切都运行良好,直到我尝试发布 jar 为止。
**问题1:** Maven抛出错误,因为它在本地存储库中找不到它所依赖的其他maven项目的jar, 这意味着我必须自己弄清楚项目之间的依赖关系,并以正确的顺序进入每个项目并运行“mvn clean install”
这似乎不合逻辑,因为这是maven的主要目的,必须有一种方法告诉maven自己去做。
**问题2:**如果项目A依赖于B,而B又依赖于C,并且我想在A中使用C,那么在eclipse中,我在A的POM中添加B就足够了,它可以工作,但是当我运行时“mvn clean install”maven 抛出错误,指出缺少 C 的依赖项。 这意味着我必须添加 A 和 C 之间的依赖关系,这是没有意义的,因为在 eclipse 中我已经在“Maven 依赖关系”下看到它,所以如果 eclipse 识别它为什么 mvn clean install 不识别呢?
请注意,我最终能够生产出我需要的 jar,但只有在如上所述的大量艰苦工作之后。
我知道我可以使用像 nexus 或 artifactory 这样的东西,但这对我来说有点矫枉过正,我希望能够在本地存储库中做到这一点。
我正在寻找正确的方法,有什么建议吗?
最佳答案
您需要的是一个顶级 pom,其中列出了您想要构建为模块的每个内容。在 Maven 术语中,这称为 reactor build .
类似于:
<小时/> <groupId>this.that</groupId>
<artifactId>build.root</artifactId>
<name>A name</name>
<packaging>pom</packaging>
<modules>
<module>../a.b</module>
<module>../a.c</module>
关于java - Maven 对其他 Maven 项目的依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39893604/