【问题标题】:maven-release-plugin with property activated profiles带有属性激活配置文件的 maven-release-plugin
【发布时间】:2018-09-17 23:48:59
【问题描述】:

我有一个项目,其中大多数配置文件都是根据文件存在和系统属性的组合自动激活的。例如:

        <profile>
        <id>when-releasing-java-generate-sources</id>
        <activation>
            <file>
                <exists>${basedir}/src/main/java</exists>
            </file>
            <property>
                <name>build.release</name>
            </property>

现在我需要发布和部署这个项目的工件,我将使用 maven-release-plugin。

我的问题是,即使我在命令行中传递 -Dbuild.release,我的配置文件也没有被激活。 我也尝试使用 -Darguments=-Dbuild.release,但看不到正在执行的配置文件中设置的插件。

那么,有什么方法可以使用 maven-release-plugin 激活我的项目配置文件?

【问题讨论】:

  • 你能说明一下 maven-release-plugin 的定义吗?
  • @khmarbaise,我能够找到问题所在。无论如何,谢谢。

标签: maven maven-release-plugin


【解决方案1】:

在深入研究我的问题数小时后,我找到了解决方案。

我发现的第一件事是 maven-release-plugin 有一个烦人的限制:当您的项目具有不是父级的聚合器 POM 时,它不起作用。

所以我必须解决的第一件事是将父 POM 提升到项目层次结构的顶部,并将其也变成聚合器。

完成后,我需要以这种方式设置发布插件:

    <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.5.3</version>
      <configuration>
        <arguments>-Dc8tech.build.release -Dc8tech.build.test.coverage ${arguments}</arguments>
        <tagNameFormat>v@{project.version}</tagNameFormat>
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <releaseProfiles>when-releasing-ensure-requirements</releaseProfiles>
      </configuration>
    </plugin>

然后我就可以正常发布我的项目了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 2011-11-11
    • 2011-07-22
    • 2017-10-11
    • 2013-09-24
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多