简体   繁体   English

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

[英]Maven: Multi module project dependecies not resolved (parent pom)

This is my maven project structure: 这是我的Maven项目结构:

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

Parent ./pom.xml modules declaration is: ./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>

Then, rep-digital-common has rep-digital as parent, ./rep-digital-common/pom.xml : 然后, rep-digital-commonrep-digital作为父级,./ rep-digital-common ./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>

So, rep-digital-api has rep-digital-common as dependency and rep-digital as parent: 因此, rep-digital-apirep-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>

In order to make everything works, I first install rep-digital-common using mvn clean package install and it seems to be installed correctly on my local repository: 为了使一切正常,我首先使用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

However, the problem appears when I'm trying to build rep-digital-api . 但是,当我尝试构建rep-digital-api时,会出现问题。 The message is: 消息是:

Could not find artifact net.gencat.transversal.repositori.digital:rep-digital:pom:0.0.1-SNAPSHOT 找不到工件net.gencat.transversal.repositori.digital:rep-digital:pom:0.0.1-SNAPSHOT

It seems mvn is not able to pick up parent pom... 似乎mvn无法接听父pom ...

The command I execute is: mvn clean package in ./rep-digital-api 我执行的命令是: ./rep-digital-api mvn clean package

Any ideas? 有任何想法吗?

Sounds like there is no rep-digital artefact in your .m2 repository (or remotely). 听起来您的.m2存储库(或远程)中没有rep-digital伪像。 This implies to me that you did not cd rep-digital; mvn install 对我而言,这意味着您未使用cd rep-digital; mvn install cd rep-digital; mvn install . cd rep-digital; mvn install You can confirm this by looking inside .m2 and checking whether you do indeed have the rep-digital artefact installed locally. 您可以通过在.m2内部查看并检查是否确实在本地安装了rep-digital artefact来确认这一点。

Installing the parent rep-digital will create: 安装父级rep-digital将创建:

  • an artefact .m2/repository/net.gencat.transversal.repositori.digital/rep-digital/1.0-SNAPSHOT/rep-digital-1.0-SNAPSHOT.pom 一个伪像.m2/repository/net.gencat.transversal.repositori.digital/rep-digital/1.0-SNAPSHOT/rep-digital-1.0-SNAPSHOT.pom
    • this is just a copy of rep-digital 's pom.xml 这只是rep-digitalpom.xml的副本
  • a few maven-metadata-local.xml metadata files describing when each artefact was last updated 一些maven-metadata-local.xml元数据文件,它们描述了每个maven-metadata-local.xml最新更新时间

Installing the parent artefact will also install all the child artefacts. 安装父文物还将安装所有子文物。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM