Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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
Maven “我该如何治疗?”;Can';t由于未发布的依赖关系而发布项目”;何时释放子模块?_Maven_Dependencies_Snapshot_Release Management_Maven Release Plugin - Fatal编程技术网

Maven “我该如何治疗?”;Can';t由于未发布的依赖关系而发布项目”;何时释放子模块?

Maven “我该如何治疗?”;Can';t由于未发布的依赖关系而发布项目”;何时释放子模块?,maven,dependencies,snapshot,release-management,maven-release-plugin,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>5

我正在使用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>
我得到了错误

[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中硬编码版本。还要注意,我使用的“-dallowtimestedsnapshots=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>

子公司
org.mainco.subco
52.0.0
我的项目
http://maven.apache.org
52.0.0-快照

导致与上述相同的错误。

使用父级的发布版本

<parent>
    <artifactId>subco</artifactId>
    <groupId>org.mainco.subco</groupId>
    <version>52.0.0</version>
</parent>

子公司
org.mainco.subco
52.0.0

您还需要指定当前项目的版本;因为它不是与父模块一起发布的,所以它需要有自己的版本元素。

因为我依赖的子模块与父模块的版本相同,所以我更改了

${project.version}


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

对于那些通过谷歌搜索错误的用户: 检查
pom.xml
中是否存在包含单词
SNAPSHOT
的依赖项。 或者,如果您的项目版本有一个
快照
,并且一个或多个依赖项使用项目版本:

<version>${project.version}</version>

那不行。这样做会导致错误“反应堆项目列表中没有快照项目”-我被告知您不能发布“版本”,实际上--注意,请参阅我的编辑,但是添加您的建议(请确保我上面发布的内容是您想要的),会导致相同的错误--“由于未发布的依赖关系,无法发布项目”.您是否使用最新版本的发布插件?
${project.parent.version}
<version>${project.version}</version>
17:34:54 [INFO] Ignoring SNAPSHOT depenedencies and plugins ...