2010-11-16 12 views
9

Tengo en el archivo pom de una aplicación web, un perfil de compilación, que hace algunas cosas necesarias (en mi código) para la prueba qa.cambiar el nombre de artefacto desplegado basado en el perfil

tengo este código en SVN y el código se compila en Hudson, que despliega los artefactos en el nexo ..

Hudson tiene dos trabajos, uno para el perfil de control de calidad (QA-P) y otro para los clientes.

Lo que necesito es que cambie en mi perfil de qa el nombre del artefacto durante la fase de despliegue, de modo que nexus tenga dos archivos war diferentes, uno para qa y otro para el cliente.

Utilizo (después de la búsqueda de Google) lo siguiente que parece que no hace nada en hudshon!

<profile> 
     <id>qa</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-deploy-plugin</artifactId> 
        <version>2.5</version> 
        <configuration> 
         <classifier>qa</classifier> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

any ideas someone?

Respuesta

12

que realmente se necesita para establecer la opción "clasificador" configuración en el plugin que está construyendo el paquete que está siendo desplegado: maven- (oído | EJB | frasco | RAR | guerra | sombra) -plugin:

Por ejemplo , para construir un WAR con un clasificador de control de calidad, que haría lo siguiente:

<profile> 
    <id>qa</id> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.1.1</version> 
       <configuration> 
        <classifier>qa</classifier> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</profile> 

también, en lugar de establecer el clasificador puede configurar cualquiera de los siguientes (por defecto a la mayoría project.build.finalName, por lo que establecer que la propiedad actualiza muchas de estas):

  • general
    • project.build.finalName
  • Guerra Plugin
    • warName
  • Oído | Jar | Rar | Shade Plugin
    • finalName
  • EJB Plugin
    • jarName

Una nota final: Nunca me di cuenta de esto antes, pero mirando por encima de la documentación, parece que el plugin RAR no soporta la opción de "clasificación". Shade no admite el concepto de clasificador, pero lo hace a través de la propiedad "shadedClassifierName".

Cuestiones relacionadas