【问题标题】:Maven dependency on other Maven projectsMaven 对其他 Maven 项目的依赖
【发布时间】:2016-10-06 19:19:59
【问题描述】:

我有多个 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 没有?

请注意,我最终能够生产出我需要的罐子,但必须经过如上所述的大量努力。

我知道我可以使用诸如 nexus 或 artifactory 之类的东西,但这对我来说太过分了,我希望能够在本地存储库中使用它。

我正在寻找正确的方法,有什么建议吗?

【问题讨论】:

  • 您是否有一个内部存储库来存放所有人工制品?
  • 我的本地存储库位于 C:\Users\giladba\.m2\repository
  • 人工制品和 pom 都位于这个本地存储库中?
  • 您需要的是您自己的 Maven 存储库,例如 Nexus,这必须在您的 pom.xml 中进行配置。你所有的项目都必须在那里放置人工制品
  • 那你必须做一个多模块构建

标签: java eclipse maven maven-assembly-plugin


【解决方案1】:

你需要的是一个顶级的 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>

【讨论】:

  • 好的,所以我用你描述的 POM 创建了一个新的 maven 项目,当我运行 mvn clean install 并且它运行完美!非常感谢:)
【解决方案2】:

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

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

【讨论】:

  • 在我发布问题之前已经这样做了,它可以工作,但是要按正确的顺序安装所有项目需要做很多工作。
猜你喜欢
  • 2014-07-01
  • 2016-01-13
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
  • 2018-10-20
  • 2023-04-07
  • 2023-03-13
  • 2014-05-25
相关资源
最近更新 更多