【发布时间】:2012-03-14 20:45:38
【问题描述】:
我想为 Maven 发布插件的不同目标提供不同的配置选项。故事是这样的:
我将 Git 用于 SCM。我希望 release:prepare 插件在本地完成所有操作,并且 release:perform 将所有更改一次推送到远程存储库。
我尝试过这样做:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<executions>
<execution>
<id>release-prepare</id>
<configuration>
<pushChanges>false</pushChanges>
</configuration>
<goals>
<goal>prepare</goal>
</goals>
</execution>
<execution>
<id>release-perform</id>
<configuration>
<localCheckout>true</localCheckout>
<pushChanges>true</pushChanges>
</configuration>
<goals>
<goal>perform</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.7-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
如果有人对此有疑问,localCheckout=true 需要 1.7-SNAPSHOT 版本才能正常工作 (http://jira.codehaus.org/browse/SCM-662)。
使用上面提到的设置,所有配置选项都被完全忽略,但是当我简单地指定这样的设置时:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<localCheckout>true</localCheckout>
<pushChanges>false</pushChanges>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.7-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
它们适用于 release:prepare 和 release:perform 这不是预期的结果。
编辑:
为了清楚起见:当我们将 Git 用于 SCM 时,我们希望所有的操作都会导致准备发布本地版本,如果您考虑到本地 Git 存储库是一个无论如何,成熟的回购。但是,当我们进行实际发布时,我们希望将所有更改推送到上游存储库,以便正确设置所有内容。
谁能帮帮我?
【问题讨论】:
-
您能再解释一下要求以了解您的愿望吗?
标签: maven-2