发布时的配置文件激活:准备和发布:执行

Mic*_*ski 13 maven maven-release-plugin

我无法找到激活某些Maven个人资料release:preparerelease:perform(两个)目标的解决方案.像这样的东西:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.2.1</version>
  <configuration>
    <useReleaseProfile>false</useReleaseProfile>
    <goals>deploy</goals>
    <arguments>-Pmy-release</arguments>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

只是不起作用.我知道这个releaseProfiles设置只适用于release:perform我,因为我只是arguments设置正是我想要的,但是my-profile在执行期间配置文件不活动.难道我做错了什么?

nwi*_*ler 8

这看起来像一个重复的问题.请看一下这个问题,它有一个答案. maven release plugin忽略releaseProfile

基本上版本2.2.1版本添加了一个releaseProfiles参数,允许您定义在发布期间启用的配置文件.

http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html

不幸的是,看起来有一个错误会阻止它做你想做的事情......

编辑

我在这种情况下使用的一件事是不使用-P参数,而是使用环境设置触发配置文件-Denv=release.然后在POM中,我根据值的值激活配置文件env.这一直对我有用.

  • 谢谢你的回答,@ nwinkler.`releaseProfiles`参数仅与`release:perform`目标相关,因此在`release:prepare`期间它不起作用.而且,你是对的,它的行为无论如何都很奇怪.使用`-Dmy-release`变量的提示实际上是我当前的解决方法.我没有提及它直接提出我的问题,也没有提出任何思考它的方法.然而,似乎这是目前唯一(或至少是最好的)方式.我已经尝试了`maven-release-plugin`的`2.3-SNAPSHOT`版本,并且stil无法正常工作.伤心. (4认同)

小智 8

-Darguments =" - PmyProfile"似乎完成了这项工作.


小智 6

由于maven release插件启动了其他实例,因此您必须指定其他参数.对你而言

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <arguments>${myReleaseArgs}</arguments>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

和执行

mvn release:prepare release:perform -DmyReleaseArgs="-Pmy-release -DskipTests=true" -Pmy-release -DskipTests=true
Run Code Online (Sandbox Code Playgroud)

是的,它必须重复.