首页 > 解决方案 > 在 maven 项目中添加 maven 项目作为依赖项

问题描述

我有两个 Maven 项目,都是从 Eclipse 中的默认 Maven 结构创建的。

项目 A 依赖于项目 B。为了在 B 中使用来自 A 的类,我可以将 B 添加到 A 的构建路径中。

如何使用 Maven 达到相同的效果?

目前,我的文件系统上都有这两个项目,但我想以尽可能类似的方式添加此依赖项,例如,从远程存储库添加 GSON(图 1),因为这就是我的方式想在将来处理我自己的存储库。

目前,当我尝试这个时:

<dependency>
    <groupId>vision.voltsofdoom</groupId>
    <artifactId>voltsofdoom</artifactId>
    <version>0.0.1</version>
    <type>pom</type>
</dependency>

...并从构建路径中删除任何其他项目,Eclipse 无法解析我的任何导入(当我将项目 B(voltsofdoom)添加到 A 的(casketofazamgarath)构建路径时,一切正常。

B 的 (voltsofdoom) 基本 pom 看起来像这样。

    <groupId>vision.voltsofdoom</groupId>
    <artifactId>voltsofdoom</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>

B (voltsofdoom) 没有出现在“Maven Repositories”视图的“Local Repository”选项卡中,而是出现在“Workspace Projects”中。

图 1(添加 GSON):

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.3.1</version>
</dependency>

==

答案:按照正确的标记答案。修改后的片段是:

<dependency>
    <groupId>vision.voltsofdoom</groupId>
    <artifactId>voltsofdoom</artifactId>
    <version>0.0.1</version>
</dependency>

标签: javaeclipsemaven

解决方案


您可以在maven clean install不依赖其他项目(即“依赖项”)的项目上运行目标,这会将您的项目“导出”到用户目录中的本地 .m2 目录。

之后,您应该能够使用您在问题中提到的代码片段从依赖项目中访问它(尽管我不太确定<type>标签的作用)。


推荐阅读