maven-release-plugin 和表达式的问题

Posted

技术标签:

【中文标题】maven-release-plugin 和表达式的问题【英文标题】:Problems with maven-release-plugin and expressions 【发布时间】:2015-09-16 11:11:32 【问题描述】:

我们正在尝试使用 Jenkins 上的 maven-release-plugin 发布我们的项目。

很遗憾,我们遇到了这个错误:

[ERROR] 未能执行目标 org.apache.maven.plugins:maven-release-plugin:2.5.2:prepare (default-cli) on project our-project: 工件 (our-group:our-parser) 需要与找到的版本不同的版本(1.3) ($our-parent.version) 用于项目中的表达式 (our-parser.version) (我们的组:我们的项目)。 -> [帮助 1]

正如我从日志文件中看到的,变量 our-parent.version 已被替换为 1.3our-parser.version 引用变量 our-parent.version。所以一切都应该没问题。那么为什么会出现这个错误呢?


这是我们的 POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!-- some stuff -->
    <properties>
        <our-parent.version>1.3-SNAPSHOT</our-parent.version>
        <our-parser.version>$our-parent.version</our-parser.version>
    </properties>
    <!-- some stuff -->
    <modules>
        <!-- some stuff -->
        <module>our-parser</module>
    </modules>
    <dependencyManagement>
        <dependencies>
            <!-- some stuff -->
            <dependency>
                <groupId>groupId</groupId>
                <artifactId>our-parser</artifactId>
                <version>$our-parser.version</version>
            </dependency>           
        </dependencies>
    </dependencyManagement>
</project>

【问题讨论】:

我们可以给你一些 poms 吗? @vincent 我已经附上了相关的sn-ps。 就像@bmargulies 所说,maven 发布插件会改变你的 pom 的版本,而不是你自己的属性的值。如果您在快照版本中有依赖项,它将失败 【参考方案1】:

也许:

    <our-parent.version>engine-1.3-SNAPSHOT</our-parent.version>

应该是

$project.version

?

【讨论】:

以上是关于maven-release-plugin 和表达式的问题的主要内容,如果未能解决你的问题,请参考以下文章

将 maven-release-plugin 与 git-1.8.5 一起使用

使用 maven-release-plugin 部署程序集包

避免使用 maven-release-plugin 为下一次开发迭代更新 POM 版本

maven-release-plugin:pom.xml 的 scm 部分中的文件夹是不是相关?

maven-release-plugin 标签创建

在 Eclipse 中运行 maven-release-plugin 时没有版本提示