2010-02-22 20 views
7

Tengo un proyecto que usa varios perfiles. Cada perfil utiliza plugins siguientes:Maven: use complementos comunes/compartidos cuando se trabaja con múltiples perfiles

  • experto compilador-plugin
  • maven-recursos-plugin
  • experto-antRun-plugin
  • experto-segura-plugin
  • experto-guerra complemento

El marcado en negrita es, sin embargo, el único complemento donde hay una diferencia entre los perfiles (di Los archivos de configuración preferidos se copiarán usando el plugin antrun). Los otros 4 complementos se configuran exactamente igual para todos los perfiles.

La pregunta ahora es: ¿hay alguna manera de incluir estos complementos comunes solo una vez pero aún así usarlos para todos los perfiles por defecto?

Algo así como:

<shared><plugin1><plugin2>...</shared>
<profile><plugin3></profile>
<profile><plugin3></profile>
...

gracias,
Stijn

Respuesta

10

Si un plugin es utilizado por todas perfil, simplemente se definen en el <build> parte:

<project> 
... 
    <build> 
     <plugins> 
      Your shared plugins go here... 
     </plugins> 

    <profiles> 
     Definition of profiles... 
    </profiles> 
</project> 

De esta manera, solo definirá el complemento antrun en el bloque profiles.

+0

gracias por la respuesta rápida; esto es qué pena primero (hace unos días) pero luego me dio errores de compilación. Lo intenté de nuevo y ahora parece funcionar bien, así que aparentemente los errores tuvieron una causa diferente. –

2

Sólo se incluyen los plugins comunes en su sección build:

<build> 
    <plugins> 
     <plugin> 
      <groupId>...</groupId> 
      <artifactId>plugin1</artifactId> 
     </plugin> 
     ... 
    </plugins> 
</build> 

a continuación, añadir el complemento específico en su perfil:

<profiles> 
    <profile> 
     <id>...</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin3</artifactId> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

También puede configurar el mismo plug-in de manera diferente en diferentes perfiles de esta manera :

<profiles> 
    <profile> 
     <id>profile1</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin1</artifactId> 
        <configuration> 
         <setting>value1</setting> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>profile2</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin1</artifactId> 
        <configuration> 
         <setting>value2</setting> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 
+0

Péter, también gracias por su rápida respuesta. –

Cuestiones relacionadas