Java maven-Can';由于未发布的依赖关系,无法发布项目
我正在使用多模块pom设置,当使用发布插件时,我无法这样做。 我得到一个错误:Java maven-Can';由于未发布的依赖关系,无法发布项目,java,maven,maven-release-plugin,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-SN
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
以下是我认为相关文件的主要部分:
图书馆家长
4.0.0
com.xyz
图书馆家长
1.1-快照
聚甲醛
父库
所有库模块的父pom
../util
../streams
maven发布插件
2.5
释放
部署程序集:单个
利用率
4.0.0
利用率
罐子
com.xyz
图书馆家长
../libraryparent/pom.xml
1.1-快照
溪流
4.0.0
溪流
罐子
com.xyz
图书馆家长
../libraryparent/pom.xml
1.1-快照
com.xyz
利用率
1.1-快照
j2me
真的
我怀疑发布插件可以将版本设置为它们的发布版本,等等
谢谢。maven发布插件验证父项和依赖项是否是多模块项目的一部分。如果无法识别,可能是因为不同的版本,或者是因为groupId和/或artifactId中的键入错误
com.xyz
可能是假的,请再次检查该值。
有人可能会说,maven发布插件不支持平面项目(比如这个)。然而,有很多集成测试确实证实了平面项目是受支持的 我想我刚刚找到了解决办法 我将做一个更完整的测试,并在不久后公布结果 从以下内容更改maven发布插件的目标:
<goals>deploy assembly:single</goals>
部署程序集:单个
对此
<goals>deploy</goals>
部署
…最后…Hm,可能您需要将模块添加到父pom中的依赖项管理中。我认为您需要在父pom上运行release plugin,而不是在模块上。Arkadiy,我确实在父pom上运行了该命令。我猜我不需要粘贴所有的“垃圾”,因为它会把问题弄得乱七八糟。谢谢。嗨,罗伯特,谢谢你的回答。是的,artifactID是假的,并且只发布了这样的内容。实际项目相当大,有26个左右相互依赖的库;父级只是为了一个简单的构建过程。父级还可以方便地管理项目,因为它定义了一些公共属性。我刚刚检查并100%确保POM中的所有、artifactId、groupId和版本100%匹配。没有打字错误。我解决了我最初的问题,但还有更多;这就是项目的结构或未知的方式。每个库都有自己的git repo和父库。在构建过程接近尾声时,我收到以下错误消息:[error]无法执行goal org.apache.maven.plugins:maven release plugin:2.5:prepare(默认cli)on project libraryparent:无法提交文件[error]提供程序消息:[error]git add命令失败。[ERROR]命令输出:[ERROR]致命:'..\libraries\util\pom.xml'在Repository之外,这并不能解释
由于未发布的依赖项而无法发布项目的原因。是的:maven发布插件假设每个git存储库有一个发布周期,并且没有存储库的混合。
<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>
<goals>deploy assembly:single</goals>
<goals>deploy</goals>