2012-01-30 13 views
10

Tengo un archivo que mantiene un número de compilación para la versión de lanzamiento. Cada vez que se realiza una compilación de lanzamiento, este número se incrementa y el archivo se guarda en el repositorio svn.Maven: Uso de un complemento basado en el perfil

Ahora digo que tengo un complemento para hacer este trabajo y he creado un perfil de compilación. Pero necesito que este complemento se active solo cuando el perfil de compilación está activado y no de otra manera. Supongo que agregar pluginManagement al perfil podría ser la salida como a continuación. ¿Alguna sugerencia?

<profiles> 
    <id>release</id>  
    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        .. 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
</profiles> 

Respuesta

5

El uso de pluginManagement no hará que se ejecute el complemento de compilación. Se usa para especificar la versión del complemento y la información de configuración para los POM secundarios. Además, te falta el elemento secundario 'perfil' de 'perfiles'. Por último, a menos que planee activar el perfil a través de -P, necesitará algunos criterios de activación.

27

Le sugiero que primero consulte la documentación de los perfiles de compilación. Puede encontrar que here. Lo primero que desea revisar es esta sección:

¿Cómo se puede activar un perfil? ¿Cómo varía esto de acuerdo con el tipo de perfil que se utiliza?

Básicamente, una vez que entienda que, tenga en cuenta que lo que usted pone en su sección de perfil es bastante cercano a lo que tiene fuera de su perfil. Dicho esto, si necesita una sección de construcción específica de perfil, debe emular lo que tendría fuera del perfil - si echa un vistazo a pom.xsd, es exactamente lo mismo que yo creo.

Así, por ejemplo:

<profiles> 
    <profile> 
     <id>full-build</id> 
     <activation> 
      <property> 
       <name>build</name> 
       <value>full</value> 
      </property> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo.webstart</groupId> 
        <artifactId>webstart-maven-plugin</artifactId> 
        <version>1.0-beta-1</version> 
        <executions> 
         <execution> 
          <phase>package</phase> 
          <goals> 
           <goal>jnlp</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <resourcesDirectory>src/main/web</resourcesDirectory> 
         .... 

Esto se activaría ejecutando: mvn package -Dbuild=full

espero que esto ayude.

Cuestiones relacionadas