Maven 在发布:准备和发布:执行时激活配置文件
我找不到在Maven 在发布:准备和发布:执行时激活配置文件,maven,maven-release-plugin,Maven,Maven Release Plugin,我找不到在release:prepare和release:perform(两者)目标上激活某个Maven配置文件的解决方案。大概是这样的: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.2.1</version> <co
release:prepare
和release:perform
(两者)目标上激活某个Maven配置文件的解决方案。大概是这样的:
<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>
org.apache.maven.plugins
maven发布插件
2.2.1
假的
部署
-Pmy释放
就是不管用。我知道
releaseProfiles
设置仅在release:perform
期间有效,因此我认为参数
设置正是我想要的,但是我的配置文件
配置文件在执行期间不处于活动状态。我做错什么了吗?这看起来像是一个重复的问题。请看这个问题,它有答案。
基本上,版本2.2.1的发布插件添加了一个releaseProfiles
参数,允许您定义要在发布期间启用的配置文件
不幸的是,似乎有一个bug会阻止它做你想做的事情
编辑
我在本例中使用的一件事不是使用
-p
参数,而是通过使用-Denv=release
的环境设置触发概要文件。然后在POM中,我根据env
的值激活概要文件。这对我来说一直有效。因为maven release plugin启动附加实例时,您必须指定附加参数。你的情况
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.4</version>
<configuration>
<arguments>${myReleaseArgs}</arguments>
</configuration>
</plugin>
是的,它必须复制。-Darguments=“-PmyProfile”似乎可以完成这项工作。它在Jenkins中通过激活两个版本的配置文件:准备和发布:通过设置两个属性执行
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<releaseProfiles>myprofile</releaseProfiles>
<arguments>-Pmyprofile</arguments>
</configuration>
</plugin>
</plugins>
</build >
maven发布插件
2.5.1
我的个人资料
-Pmyprofile
尽管上述方法非常有效,但我发现使用文件激活的配置文件更有用。“主”配置文件的旧概念导致了一个问题,因为我在我的父pom中有该配置文件。这意味着,它在每一个模块中都被激活了,任意的
为了解决这个问题,我在profile中使用了文件激活方法。它甚至可以更好地工作,并且作为一个奖励,它简化了Jenkins中的发布。在Eclipse中,在命令行中,在Jenkins(又名everywhere)中,maven检测到该文件,并且不必配置maven发布插件。此外,配置文件仅在右侧模块中处于活动状态 谢谢你的回答,@nwinkler
releaseProfiles
参数仅与release:perform
目标相关,因此在release:prepare
期间不起作用。而且,你是对的,它的行为真的很奇怪。您关于-Dmy release
变量的提示实际上是我当前的解决方法。我提到它并不是为了直截了当地回答我的问题,也不是为了提出任何思考的途径。然而,这似乎是目前唯一(或至少是最好)的方法。我已经尝试了2.3-SNAPSHOT
版本的maven发布插件
,但是stil不能正常工作。悲哀。添加-prelese
对我来说很有效。即使在maven-release-plugin-3.0.0-M3中,release
选项似乎也无能为力。
<build>
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<releaseProfiles>myprofile</releaseProfiles>
<arguments>-Pmyprofile</arguments>
</configuration>
</plugin>
</plugins>
</build >