这是我的 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-common
将 rep-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>
为了使一切正常工作,我首先使用 mvn clean package install
安装 rep-digital-common
,它似乎已正确安装在我的本地存储库上:
$ ls ~/.m2/repository/net/gencat/transversal/repositori/digital/rep-digital-common/
0.0.1-SNAPSHOT/ maven-metadata-local.xml
但是,当我尝试构建 rep-digital-api
时,问题出现了。消息是:
Could not find artifact net.gencat.transversal.repositori.digital:rep-digital:pom:0.0.1-SNAPSHOT
似乎mvn
无法获取父pom...
我执行的命令是:./rep-digital-api
中的mvn clean package
有什么想法吗?
最佳答案
听起来好像没有 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
的副本的pom.xml
- 这只是
- 一些
maven-metadata-local.xml
描述每个 Artifact 上次更新时间的元数据文件
安装父 Artifact 也会安装所有子 Artifact 。
关于java - Maven:多模块项目依赖关系未解决(父pom),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51836395/