我有一个项目,其中大多数配置文件是根据文件存在和系统属性的组合自动激活的。例如:
<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激活我的项目的配置文件?
答案 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>
那我就能够正确地发布我的项目。