5

I have question about maven. How can I disable buildnumber-maven-plugin through command line option. I want to run "mvn test" command on our continuous integration server, but this cmd failed because it trying to build a version and haven't access permission to our vcs (which is configured in tag). So it is possible disable it through cmd option or run only the tests without building new release version? Thanks for any help.

Jean-Rémy Revy
  • 5,607
  • 3
  • 39
  • 65
user1289877
  • 279
  • 6
  • 12

4 Answers4

10

Use a profile to control which plug-ins are enabled during the build:

<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>

The profile can be enabled by running Maven as follows:

mvn -Pwith-scm package
Mark O'Connor
  • 76,015
  • 10
  • 139
  • 185
  • But I have only option to add cmd parameter to maven build on CI. I cannot manipulate with pom.xml and settings.xml – user1289877 Mar 24 '12 at 14:02
  • If you can't change the POM, then you are stuck with a Maven build life-cycle that includes SCM operations. Using a profile is a mechanism for implementing optional life-cycle actions – Mark O'Connor Mar 24 '12 at 15:38
4

One approach would be to use a property in your pom to specify the execution phase of the build number plugin, as shown below.

<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>

Then provide the property on the command line to disable the plugin, as shown in the following example.

mvn install -Dbuildnumber.plugin.phase=none
matt_smith
  • 41
  • 1
0

You may skip failure without change pom.xml in project. Please look at my answer at Disable maven build number plugin

Hubbitus
  • 5,161
  • 3
  • 41
  • 47
-1
mvn clean install deploy -Dbuildnumber.phase=none
Pang
  • 9,564
  • 146
  • 81
  • 122
  • 1
    This answer does not provide any explanation or any new information not contained in already existing answers. – heenenee Oct 23 '16 at 05:45