Maven:未解决多模块项目依赖项(父pom)

时间:2018-08-14 07:54:04

标签: java maven

这是我的Maven项目结构:

.
├── pom.xml
├── rep-digital-api
│   ├── pom.xml
│   └── src
└── rep-digital-common
    ├── pom.xml
    └── src

./pom.xml模块声明为:

<groupId>net.gencat.transversal.repositori.digital</groupId>
<artifactId>rep-digital</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
    <module>rep-digital-common</module>
    <module>rep-digital-api</module>
</modules>

然后,rep-digital-commonrep-digital作为父节点./rep-digital-common/pom.xml

<artifactId>rep-digital-common</artifactId>
...
<parent>
    <groupId>net.gencat.transversal.repositori.digital</groupId>
    <artifactId>rep-digital</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

因此,rep-digital-api具有rep-digital-common作为依存关系,rep-digital作为父关系:

<artifactId>rep-digital-api</artifactId>

<parent>
    <groupId>net.gencat.transversal.repositori.digital</groupId>
    <artifactId>rep-digital</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>
...     
<dependency>
    <groupId>net.gencat.transversal.repositori.digital</groupId>
    <artifactId>rep-digital-common</artifactId>
</dependency>

为了使一切正常,我首先使用rep-digital-common安装mvn clean package install,它似乎已正确安装在本地存储库中:

$ ls ~/.m2/repository/net/gencat/transversal/repositori/digital/rep-digital-common/
0.0.1-SNAPSHOT/  maven-metadata-local.xml

但是,当我尝试构建rep-digital-api时会出现问题。消息是:

  

找不到人工制品net.gencat.transversal.repositori.digital:rep-digital:pom:0.0.1-SNAPSHOT

似乎mvn无法拾取父pom ...

我执行的命令是:mvn clean package中的./rep-digital-api

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

听起来rep-digital存储库中(或远程)没有.m2伪像。对我来说,这意味着您没有cd rep-digital; mvn install。您可以通过查看.m2的内部并检查您是否确实在本地安装了rep-digital artefact来确认这一点。

安装父级rep-digital将创建:

  • 人工制品.m2/repository/net.gencat.transversal.repositori.digital/rep-digital/1.0-SNAPSHOT/rep-digital-1.0-SNAPSHOT.pom
    • 这只是rep-digital的{​​{1}}的副本
  • 一些pom.xml元数据文件,它们描述了每个人工制品的最新更新时间

安装父级人工制品也会同时安装所有子级人工制品。