Llegar a la siguiente excepción, mientras que el uso de maven número de compilación plugin. Es posible deshabilitar la SCM de verificación, mientras que utilizando el número de compilación plugin? Podemos utilizar este plugin para generar el número de compilación no SCM construir?

Excepción al hacer el build:

[ERROR] Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.0:create (default) on project projectname: Execution default of goal org.codehaus.mojo:buildnumber-maven-plugin:1.0:create failed: The scm url cannot be null. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:buildnumber-maven-plugin:1.0:create (default) on project projectname: Execution default of goal org.codehaus.mojo:buildnumber-maven-plugin:1.0:create failed: The scm url cannot be null.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:534)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.codehaus.mojo:buildnumber-maven-plugin:1.0:create failed: The scm url cannot be null.
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:116)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    ... 19 more
Caused by: java.lang.NullPointerException: The scm url cannot be null.
    at org.apache.maven.scm.manager.AbstractScmManager.makeScmRepository(AbstractScmManager.java:183)
    at org.codehaus.mojo.build.CreateMojo.getScmRepository(CreateMojo.java:768)
    at org.codehaus.mojo.build.CreateMojo.getRevision(CreateMojo.java:692)
    at org.codehaus.mojo.build.CreateMojo.execute(CreateMojo.java:443)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
    ... 20 more

POM de configuración:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
    <execution>
      <phase>validate</phase>
      <goals>
    <goal>create</goal>
    <goal>create-timestamp</goal>
      </goals>
    </execution>
    </executions>
    <configuration>
    <buildNumberPropertyName>build.number</buildNumberPropertyName>
    <timestampFormat>yyyy-MM-dd HH:mm:ss.SSS z</timestampFormat>
    <timestampPropertyName>build.time</timestampPropertyName>
    <doCheck>false</doCheck>
    <doUpdate>false</doUpdate>
    </configuration>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
    <source>1.6</source>
    <target>1.6</target>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
    <configuration>
    <warname>foodwalaweb</warname>
    <!--webResources>
        <resource>
        <filtering>false</filtering>
        <directory>${basedir}/src/main/java</directory>
        <includes>
        <include>META-INF/persistence.xml</include>
        </includes>
        </resource>
    </webResources-->
    <archive>
    <manifest>
        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
        <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
    </manifest>
    <manifestEntries>
        <Build-Number>${buildNumber}</Build-Number>
        <Built-Time>${build.time}</Built-Time>
    </manifestEntries>
    </archive>
    </configuration>
</plugin>

6 Comentarios

  1. 28

    Definir un maniquí de SCM y, a continuación, utilizar número de compilación elemento para obtener secuencial número de compilación en lugar de un valor definido por revisionOnScmFailure de la propiedad.

    pom.xml:

    <project ...>
    
        <scm>
            <connection>scm:svn:http://127.0.0.1/dummy</connection>
            <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection>
            <tag>HEAD</tag>
            <url>http://127.0.0.1/dummy</url>
        </scm>
    
        <build>
          <plugins>
    
            ...
    
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                <execution>
                    <id>buildnumber</id>
                    <phase>validate</phase>
                    <goals>
                    <goal>create</goal>
                    </goals>
                </execution>
                </executions>
                <configuration>
                    <format>{0,number}</format>
                    <items>
                    <item>buildNumber</item>
                    </items>                    
                    <doCheck>false</doCheck>
                    <doUpdate>false</doUpdate>
                    <revisionOnScmFailure>unknownbuild</revisionOnScmFailure>   
                </configuration>
            </plugin>
    
    
          </plugins>
        </build>
    </project>
  2. 8

    Con la versión 1.4 de las siguientes obras:

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.4</version>
        <configuration>
            <revisionOnScmFailure>no.scm.config.in.pom</revisionOnScmFailure>
        </configuration>
        <executions>
            <execution>
                <id>create-timestamp-id</id>
                <phase>validate</phase>
                <goals>
                    <goal>create-timestamp</goal>
                </goals>
                <configuration>
                    <timestampFormat>yyyy-MM-dd HH:mm:ss.S</timestampFormat>
                    <timestampPropertyName>myBuildNumberVariable</timestampPropertyName>
                    <!-- formats the timestamp all together like 2016-04-04 14:17:05.123 and puts 
                        it in the ${myBuildNumberVariable} buildProperty -->
                </configuration>
            </execution>
        </executions>
    </plugin>
    • Gracias! Finalmente puedo deshacerme de ese SCM ficticio!
    • Hurra. Esto funciona. No sé por qué la información en el sitio plugin no es tan clara como esta.
    • Parece SCM no es necesario en el create-timestamp objetivo, tan pronto como se cambia a create objetivo de conseguir una real int para el número de compilación falla.
  3. 3

    Todo lo que necesitas hacer es encerrar sus plugins dentro de pluginManagement etiqueta

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>true</doCheck>
                    <doUpdate>true</doUpdate>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
  4. 1

    Tuve el caso, que quería un GIT commitId y una marca de tiempo para poner en propiedades, ambos al mismo tiempo. Se puede hacer esto así?

    Curso:

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.4</version>
        <inherited>false</inherited>
        <executions>
            <execution>
                <id>commitId</id>
                <phase>validate</phase>
                <goals>
                    <goal>create</goal>
                </goals>
                <configuration>
                    <buildNumberPropertyName>commitId</buildNumberPropertyName>
                    <shortRevisionLength>7</shortRevisionLength>
                </configuration>
            </execution>
            <execution>
                <id>buildTimestamp</id>
                <phase>validate</phase>
                <goals>
                    <goal>create-timestamp</goal>
                </goals>
                <configuration>
                    <timestampPropertyName>buildTimestamp</timestampPropertyName>
                </configuration>
            </execution>
        </executions>
    </plugin>
  5. 0

    La siguiente utiliza para trabajar, si no me equivoco:

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.0-beta-3</version>
        <configuration>
          <buildNumberPropertyName>buildNumber.value</buildNumberPropertyName>
          <timestampPropertyName>buildNumber.timestamp</timestampPropertyName>
          <format>{0,date,yyyyMMdd-HHmm}</format>
          <items>
            <item>timestamp</item>
          </items>
        </configuration>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>create</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    • Necesito generar el número de compilación y en tiempo de compilación como en el siguiente formato. El código anterior no ayuda. Es la impresión de la fecha y hora, Si puedo utilizar el código que he publicado. Pero no por el número de compilación. «Construir-Número: x.x.x.1» «Built-Tiempo: 2012-02-09 11:30:48.885 EST» todo cuerpo tiene alguna otra idea o sugerencia?
  6. -1

    Este archivo de trabajo para mí. Podría ayudar con sólo el número de versión y no hay necesidad de scm.

    <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <version>1.4</version>
                <configuration>
                 <revisionOnScmFailure>no.scm.config.in.pom
                     </revisionOnScmFailure>
                </configuration>
                <executions>
                    <execution>
                        <id>buildnumber</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                        <configuration>
                            <format>{0,number}</format>
                            <items>
                                <item>buildNumber</item>
                            </items>
                            <doCheck>false</doCheck>
                            <doUpdate>false</doUpdate>
                            <revisionOnScmFailure>unknownbuild</revisionOnScmFailure>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
    • No es trabajo para mí. Estoy seguro de que todo es lo mismo. ¿Necesito algo más?

Dejar respuesta

Please enter your comment!
Please enter your name here