如何通过命令行禁用buildnumber-maven-plugin?

5
我有一个关于Maven的问题。我想知道如何通过命令行选项禁用buildnumber-maven-plugin。我希望在我们的持续集成服务器上运行“mvn test”命令,但是该命令失败了,因为它尝试构建版本并且没有访问我们的VCS(已经配置在标签中)。是否可能通过cmd选项禁用它或仅运行测试而不构建新的发布版本?感谢您的任何帮助。
4个回答

10
使用配置文件控制编译期间启用哪些插件:
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.me.test</groupId>
    <artifactId>demo</artifactId>
    <version>1.0</version>
    ..
    ..
    <profiles>
        <profile>
            <id>with-scm</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>buildnumber-maven-plugin</artifactId>
                        <version>1.0</version>
                        <executions>
                            <execution>
                                <phase>validate</phase>
                                <goals>
                                    <goal>create</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <doCheck>true</doCheck>
                            <doUpdate>true</doUpdate>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

可以通过以下方式启用概要文件:

运行Maven
mvn -Pwith-scm package

但是我只能在CI上添加cmd参数来进行maven构建。我无法操纵pom.xml和settings.xml。 - user1289877
如果您无法更改POM,则将被困在包含SCM操作的Maven构建生命周期中。使用配置文件是实现可选生命周期操作的机制。 - Mark O'Connor

4

一种方法是使用pom中的属性来指定构建编号插件的执行阶段,如下所示。

<project>
  ..
  <properties>
    <buildnumber.plugin.phase>validate</buildnumber.plugin.phase>
    ..
  </properties>
  ..
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>buildnumber-maven-plugin</artifactId>
      <version>1.2</version>
      <executions>
        <execution>
          <phase>${buildnumber.plugin.phase}</phase>
          <goals>
            <goal>create</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        ..
      </configuration>
    </plugin>
  </plugins>
  ..
</project>

然后在命令行中提供属性以禁用插件,如下面的示例所示。
mvn install -Dbuildnumber.plugin.phase=none

0

-1
mvn clean install deploy -Dbuildnumber.phase=none

1
此答案未提供任何解释或新信息,其内容已包含在现有答案中。 - heenenee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接