maven - 发布子模块时,如何解决由于未发布的依赖项导致的 "Can' t 发布项目?

标签 maven dependencies snapshot release-management maven-release-plugin

我正在使用 Maven 3.1.1 并尝试使用 Maven 发布插件来发布多模块项目的子模块。父模块已发布,并且此子模块不在父模块的子模块列表中。在我的子模块 pom.xml 文件中,我有

    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0-SNAPSHOT</version>
    </parent>
    <name>myproject</name>
    <url>http://maven.apache.org</url>

    <dependencyManagement>
            <dependencies>
                    <dependency>
                            <groupId>org.mainco.subco</groupId>
                            <artifactId>core</artifactId>
                            <version>${project.version}</version>
                    </dependency>
   </dependencyManagement>

    <dependencies>
            ...
            <dependency>
                    <groupId>org.mainco.subco</groupId>
                    <artifactId>core</artifactId>
            </dependency>

但是,当我运行以下
mvn -B -DdevelopmentVersion=52.0.1-SNAPSHOT -DreleaseVersion=52.0.0 -Dusername=***** -Dtag=myproject-52.0.0 -DskipTests -P prod -Dresume=false -DdryRun=true -DallowTimestampedSnapshots=true org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare

我得到错误
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.2:prepare (default-cli) on project myproject: Can't release project due to non released dependencies :
[ERROR] org.mainco.subco:core:jar:52.0.0-SNAPSHOT:compile
...
[ERROR] org.mainco.subco:subco:pom:52.0.0-SNAPSHOT

我无法更改父 pom.xml 文件中的任何属性……我可以在子模块中做些什么来使上述命令成功运行吗?我喜欢使用“${project.version}”,因为我不必在我的 pom.xml 中硬编码版本。另请注意,我正在使用被忽略的“-DallowTimestampedSnapshots=true”。

编辑:

甚至向 pom 添加单独的版本元素,就像这样
    <parent>
            <artifactId>subco</artifactId>
            <groupId>org.mainco.subco</groupId>
            <version>52.0.0</version>
    </parent>

    <name>myproject</name>
    <url>http://maven.apache.org</url>
    <version>52.0.0-SNAPSHOT</version>

导致与上述相同的错误。

最佳答案

由于我依赖的子模块与父模块的版本相同,因此我更改了

${project.version}


${project.parent.version}

并在编辑中使用版本配置,错误就消失了。

关于maven - 发布子模块时,如何解决由于未发布的依赖项导致的 "Can' t 发布项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20078105/

相关文章:

kubernetes -/var/lib/etcd/member/snap 中的 etcd 文件

java - Spring JPA 的最低要求是什么

java - 如何在我的 Maven 项目中只禁止一种传递依赖?

java - JUnit 测试在 IntelliJ 中成功但在 Maven 中失败

java - 想法Intellij : Can't import the libraries: package does not exist

java - 如何将 Guava 添加到我的 Eclipse 项目中?

python - 任何人都可以使用 python 给出 Elasticsearch 的快照示例吗?

android - 为什么我不能从/dev/graphics/fb0 读取数据?

maven - Gradle:在部署期间而不是在安装期间运行集成测试

java - 使用 Maven 在 Eclipse 中运行单个 JUnit4 测试