java - maven - 由于未发布的依赖项而无法发布项目

标签 java maven maven-release-plugin

我正在使用多模块 pom 设置,而在使用发布插件时我无法这样做。 我收到错误:

Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5:prepare (default-cli) on project libraryparent: Can't release project due to non released dependencies :
com.xyz:libraryparent:pom:1.1-SNAPSHOT
in project 'utils' (com.xyz:utils:jar:1.1-SNAPSHOT)

我运行的命令是:

mvn -B release:clean release:prepare release:perform -DdryRun=true -DdevelopmentVersion=1.2-SNAPSHOT -DreleaseVersion=1.1

以下是我认为相关的文件的主要部分:

图书馆 parent

<modelVersion>4.0.0</modelVersion>
  <groupId>com.xyz</groupId>
  <artifactId>libraryparent</artifactId>
  <version>1.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>parent library</name>
  <description>A parent pom for all library modules</description>

    <modules>
        <module>../util</module>
        <module>../streams</module>
    </modules>

  <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <version>2.5</version>
        <configuration>
            <releaseProfiles>release</releaseProfiles>
            <goals>deploy assembly:single</goals>
            <!--
            <autoVersionSubmodules>true</autoVersionSubmodules>
            -->
        </configuration>
    </plugin>

工具

<project .....>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>util</artifactId>
    <packaging>jar</packaging>

    <parent>
        <groupId>com.xyz</groupId> 
        <artifactId>libraryparent</artifactId> 
        <relativePath>../libraryparent/pom.xml</relativePath>
        <version>1.1-SNAPSHOT</version> 
    </parent>
</project>

<project .....>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>streams</artifactId>
    <packaging>jar</packaging>

    <parent>
        <groupId>com.xyz</groupId>
        <artifactId>libraryparent</artifactId> 
        <relativePath>../libraryparent/pom.xml</relativePath>
        <version>1.1-SNAPSHOT</version>
    </parent>

    <dependencies>

        <dependency>
            <groupId>com.xyz</groupId>
            <artifactId>util</artifactId>
            <version>1.1-SNAPSHOT</version>
            <!--
            <version>${project.parent.version}</version>
            -->
            <classifier>j2me</classifier>
            <optional>true</optional>
        </dependency>

    </dependencies>

</project>

我怀疑发布插件可以将版本设置为他们的发布版本等。

谢谢。

最佳答案

maven-release-plugin 验证父项和依赖项是否是多​​模块项目的一部分。如果无法识别,要么是因为版本不同,要么是因为 groupId 和/或 artifactId 中的拼写错误。 com.xyz 可能是假的,所以请再次检查该值。 有些人可能会说 maven-release-plugin 不支持平面项目(比如这个)。但是,有很多集成测试确实可以确认平面项目是受支持的。

关于java - maven - 由于未发布的依赖项而无法发布项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25327338/

相关文章:

maven - Jenkins Maven 发布 : Replace Snapshot Dependencies

java - Spring Boot 应用程序 SocketException 与 Cosmos DB

java - Tycho surefire 运行时 OSGi bundle 未激活

java - Tomcat & Spring Web - 找不到类异常 org.springframework.web.context.ContextLoaderListener

java - 如何将 spring mvc 应用程序打包到 jar 中?

git - mvn release :perform fails from a git branch: does the pom. xml 需要在 master 上有相同的版本?

git - 找不到远程 ref HEAD(使用 Jenkins 和 Maven 发布工件时)

java - XSL 通过偏移比较将 UTC 时间转换为本地日期时间

java - 如何根据值对树状图进行排序?

java - json jackson异常 map 序列化