【问题标题】:Maven claims Cyclic references but none existMaven声称循环引用但不存在
【发布时间】:2019-04-03 17:31:27
【问题描述】:

这是我的父模块 POM

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
     http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>io.paratek.dynalib</groupId>
<artifactId>dynalib</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
    <module>dynanode</module>
</modules>
<dependencies>
    <dependency>
        <groupId>io.paratek.dynalib</groupId>
        <artifactId>dynanode</artifactId>
        <version>1.1-SNAPSHOT</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

这是孩子

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
    <artifactId>dynalib</artifactId>
    <groupId>io.paratek.dynalib</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

<artifactId>dynanode</artifactId>
<version>1.1-SNAPSHOT</version>
<packaging>pom</packaging>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>7</source>
                <target>7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

正如你所见,我的孩子有零依赖,但是,maven 正在吐出

[ERROR] The projects in the reactor contain a cyclic reference: Edge between 'Vertex{label='io.paratek.dynalib:dynalib:1.0-SNAPSHOT'}' and 'Vertex{label='io.paratek.dynalib:dynanode:1.1-SNAPSHOT'}' introduces to cycle in the graph io.paratek.dynalib:dynanode:1.1-SNAPSHOT --> io.paratek.dynalib:dynalib:1.0-SNAPSHOT --> io.paratek.dynalib:dynanode:1.1-SNAPSHOT

我无法让 maven 将“dynanode”识别为“dynalib”中的依赖项。 pom 文件中没有错误,但我无法在 dynalib 中使用 dynanode 函数。

【问题讨论】:

  • 子包装不应该是pom以外的东西吗?
  • 在你的父 pom.xml 中,为什么你的模块项目在我们的依赖项中?
  • 在你的父母中有一个循环引用,因为你定义了一个对依赖项的依赖,它将在定义为子模块的模块中构建,所以这根本不可能。除此之外,父级(包装:pom)永远不应该依赖于在同一个反应器中构建的工件,因为它不会工作......

标签: maven cyclic-dependency


【解决方案1】:

重新创建项目,一切正常,pom 是一样的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 2014-05-17
    • 2013-12-11
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多