目前我们正在研究大型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/但老实说,这不是我真正想做的事情......
是否有任何智能方法可以禁用此插件。像命令行参数?
答案 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
。当然,您可以更改它并提供其他任何字符串。