2

目前我们正在开发一个包含大约 100 个模块的大型 maven 项目,其中一些还有子模块。一些模块使用 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/但老实说,这不是我真正想做的事情.. .

有什么聪明的方法可以禁用这个插件。像命令行参数一样?

4

3 回答 3

3

I think you may skip failure on obtain revision without change project pom.xml - buildnumber-maven-plugin has option revisionOnScmFailure which you may use like:

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

In that case value no-scm will be used if scm call was unsuccessful. Off course you may change it and provide any other string.

于 2019-05-07T21:02:21.807 回答
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
于 2013-04-08T13:21:37.713 回答
0

根据mojo 文档,您可以使用该revisionOnScmFailure属性。

但是,它没有命令行选项。您必须修改这些 pom.xml 文件。

请参阅Maven Java 插件开发指南中的“在 Mojo 中定义参数”

于 2012-10-08T17:32:06.580 回答