Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven-Can';由于未发布的依赖关系,无法发布项目_Java_Maven_Maven Release Plugin - Fatal编程技术网

Java maven-Can';由于未发布的依赖关系,无法发布项目

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

我正在使用多模块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
以下是我认为相关文件的主要部分:

图书馆家长
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>