禁用maven内部版本号插件

时间:2012-10-08 15:30:52

标签: java git svn maven

目前我们正在研究大型maven项目,该项目有大约100个模块,其中一些模块也有子模块。 一些模块使用Maven Build Number插件。该项目是在颠覆下进行的。

最近我们开始在我们的开发团队中使用git。 在克隆subversion repo并尝试构建项目之后,我们收到了以下众所周知的错误:

The svn command failed.
Command output:
svn: ‘.’ is not a working copy

不幸的是,在我们的例子中,它不是一个选项来创建一个新的配置文件或只是从POM中删除插件定义(这将跟随弄乱数百个POM文件)。 我发现了以下文章http://abstractionextraction.wordpress.com/2012/09/27/git-svn-vs-maven-build-number-plugin/但老实说,这不是我真正想做的事情......

是否有任何智能方法可以禁用此插件。像命令行参数?

3 个答案:

答案 0 :(得分:0)

根据mojo documentation,您可以使用revisionOnScmFailure属性。

然而,it doesn't have a command line option。您必须修改这些pom.xml文件。

请参阅“在Mojo中定义参数”in the Maven Java Plugin Development Guide

答案 1 :(得分:0)

一种方法是使用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

答案 2 :(得分:-1)

我认为您无需更改项目pom.xml-buildnumber-maven-plugin has option revisionOnScmFailure就可以跳过获取修订的失败,您可以像这样使用

mvn -Dmaven.buildNumber.revisionOnScmFailure=no-scm package

在这种情况下,如果no-scm调用失败,将使用值scm。当然,您可以更改它并提供其他任何字符串。