2010-02-22 6 views
7

Ho un progetto che utilizza diversi profili. Ogni profilo utilizza plugin seguenti:Maven: utilizzare plug-in comuni/condivisi quando si lavora con più profili

  • Maven-compiler-plugin
  • Maven-risorse-plugin
  • Maven-antrun-plugin
  • Maven-infallibile-plugin
  • Maven-guerra- plug-in

Quello contrassegnato in grassetto è tuttavia l'unico plug-in in cui vi è una differenza tra i profili (di i file di configurazione fferenti verranno copiati usando il plugin antrun). Gli altri 4 plug-in sono configurati esattamente allo stesso modo per tutti i profili.

La domanda è ora: c'è un modo per includere questi plugin comuni solo una volta, ma li usano ancora per tutti i profili per impostazione predefinita?

Qualcosa di simile:

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

grazie,
Stijn

risposta

10

Se un plugin viene utilizzato da tutti profilo, è sufficiente definire nel <build> parte:

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

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

In questo modo, si definirà il plug-in antrun solo nel blocco profiles.

+0

grazie per la risposta rapida; questo è ciò che un breve primo (pochi giorni fa), ma poi mi ha dato errori di costruzione. Ho provato di nuovo e ora sembra funzionare bene quindi apparentemente gli errori avevano una causa diversa. –

2

Basta inserire i plugin comuni nella vostra sezione build:

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

quindi aggiungere il plug-in specifico nel tuo profilo:

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

è anche possibile configurare lo stesso plug-in in modo diverso in diversi profili questo modo :

<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, anche grazie per la tua risposta veloce. –

Problemi correlati