【问题标题】:Error installing multi-module project in Maven在 Maven 中安装多模块项目时出错
【发布时间】:2020-10-03 21:54:32
【问题描述】:

这是我的 POM 文件的样子:

  <groupId>com.company</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>my-app</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>


<repositories>
    <repository>
        <id>my-company-id</id>
        <name>my-company-repo</name>
        <url>URL of company's artifactory</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>


  <dependencies>
        <!-- parentDir -->
        <dependency>
            <groupId>company.project</groupId>
            <artifactId>company-project</artifactId>
            <version>1.0.82</version>
        </dependency>
        <!-- childDir -->
        <dependency>
            <groupId>company.project</groupId>
            <artifactId>company-project-child</artifactId>
            <version>1.0.82</version>
        </dependency>
  </dependencies>

此外,我尝试安装的依赖项(参见 POM 文件)的结构如下:

company.project
      |- parentDir
            |- pom.xml (no jar in parentDir)
      |- childDir
            |- pom.xml
            |- child-project.jar

childDir 和 parentDir 中的 POM 如下所示:

孩子:

<parent>
    <artifactId>company-project</artifactId>
    <groupId>company.project</groupId>
    <version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>company-project-child</artifactId>

父母:

<groupId>company.project</groupId>
<artifactId>company-project</artifactId>
<packaging>pom</packaging>
<version>${revision}</version>

<modules>
    <module>company-project-child</module>
</modules>

错误:

Failed to execute goal on project my-app: Could not resolve dependencies for project 
com.company:my-app:jar:1.0-SNAPSHOT: Failed to collect dependencies at company.project: 
company-project-child:jar:1.0.82: Failed to read artifact descriptor for 
company.project:company-project-child:jar:1.0.82: Could not find artifact 
company.project:company-project:pom:${revision} in my-company-id (<URL of company's artifactory>)

   

为什么 ${revision} 无法解析?

谢谢!

编辑:上面显示的目录结构实际上是我本地 repo 中下载的依赖项:.m2/repository/... 原始项目的父 pom.xml 确实比子 pom.xml 高一级。

【问题讨论】:

  • 请将 poms 作为文本添加到帖子中,而不是链接等。孩子希望它的父级在目录结构中更高一级,但这里不是这种情况。
  • 请注意您的 pom 文件中存在问题。应该类似于 ${project.resivsion} maven.apache.org/pom.html#properties
  • @khmarbaise 请看我上面的编辑。

标签: java maven


【解决方案1】:

解决了。 问题在于我要安装的 jar 版本。这是我所做的:

-> 手动下载 child-project.jar 并将其放入我的本地 maven repo (~/.m2/repository)
-> 在本地仓库中,目录结构类似于:

company
  |- project
      |-  company-project-child
            |-  1.80.1 (version no.)
                  |- company-project-child-1.80.1.jar
                  |- company-project-child-1.80.1.pom
      |-  company-project-parent
            |-  1.80.1
                  |- company-project-parent-1.80.1.pom

现在在子 pom 中,我将父版本从 ${revision} 更改为 1.80.1,如下所示:
原文:

<parent>
   <artifactId>company-project</artifactId>
   <groupId>company.project</groupId>
   <version>${revision}</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>company-project-child</artifactId>

改为:

<parent>
   <artifactId>company-project</artifactId>
   <groupId>company.project</groupId>
   <version>1.80.1</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>company-project-child</artifactId>

-> 同理,我把父pom文件中的版本从${revision}改成了1.80.1

-> 现在,运行 mvn install 工作正常!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-02-03
    • 2021-01-04
    • 2015-10-21
    • 2018-02-06
    相关资源
    最近更新 更多