具有属性激活配置文件的maven-release-plugin

时间:2018-09-17 23:48:59

标签: maven maven-release-plugin

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

        <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激活我的项目的配置文件?             

1 个答案:

答案 0 :(得分:0)

经过数小时的研究,我找到了解决方案。

我发现的第一件事是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>

那我就能够正确地发布我的项目。