Maven 对其他 Maven 项目的依赖

Maven dependency on other Maven projects

我有多个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 Dependencies" 下看到它,所以如果 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>

试试这个,找到你的文件 settings.xml 如何配置路径存储库:

<localRepository>E:\repositoryMavem</localRepository>
  • 使您的 Eclipse(或 IDE 正在使用)支持此文件 settings.xml
  • 转到路径后,您的项目有 pom.xml
  • 运行 命令
 mvn install:install-file -Dfile=E:\repositoryMavem\XMLManagement-1.0.jar -DgroupId=com.company -DartifactId=XMLManagement -Dversion=1.0 -Dpackaging=jar 
  • 如果你想使用 IDE Eclipse(你可以)。
  • 如果 运行 清理工件,您需要 运行 重新安装