java - Maven 对其他 Maven 项目的依赖

标签 java eclipse maven maven-assembly-plugin

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

相关文章:

java - JOrtho实现

eclipse - 在执行 selenium 测试期间 testng.xml 未从 pom.xml 运行

java - 是否可以检查该类是否具有静态 block (通过反射或其他方式)?

java.lang.UnsatisfiedLinkError : no gluegen-rt in java. 库.path

java - 如何在基于eclipse的Spring项目中添加bean配置文件?

java - 如何跟踪 Eclipse 中编译错误的错误?

java - PowerMockito:使用字符串 [] 参数模拟静态方法时出现 InvalidUseOfMatchersException

java - 可以通过在Java中导入类来运行代码吗?

java - 使用不是 Id 的 hibernate 和 Mysql 的自动增量,所以我可以用触发器重置它

Eclipse 3.7 C/C++ 代码分析 "codan"标记虚假错误