2010-02-22 10 views
7

Mam projekt, który używa kilku profili. Każdy profil wykorzystuje następujące wtyczki:Maven: użyj wspólnych/udostępnionych wtyczek podczas pracy z wieloma profilami

  • maven-compiler-plugin
  • Maven-resources-plugin
  • Maven-antrun-plugin
  • Maven-murowany-plugin
  • maven-war- wtyczka

Ta zaznaczona czcionką pogrubioną jest jednak jedyną wtyczką, w której występuje różnica między profilami (di fferent pliki konfiguracyjne będą kopiowane za pomocą wtyczki antrun). Cztery pozostałe wtyczki są skonfigurowane dokładnie tak samo dla wszystkich profili.

Pytanie brzmi teraz: czy istnieje sposób na włączenie tych popularnych wtyczek tylko raz, ale nadal domyślnie używać ich dla wszystkich profili?

Coś jak:

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

dzięki,
Stijn

Odpowiedz

10

Jeśli wtyczka jest używany przez wszystkich profilu, wystarczy zdefiniować go w <build> część:

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

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

W ten sposób zdefiniujesz wtyczkę antrun tylko w bloku profiles.

+0

dzięki za szybką odpowiedź; to jest to, co pierwszy (kilka dni temu), ale potem dało mi błędy konstrukcyjne. Próbowałem go ponownie i teraz wydaje się działać dobrze, więc najwyraźniej błędy miały inną przyczynę. –

2

Wystarczy obejmować wspólne wtyczek w sekcji build:

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

następnie dodać specyficzny wtyczki w swoim profilu:

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

Można również skonfigurować tę samą wtyczkę różnie w różnych profilach w ten sposób :

<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, dzięki za szybką odpowiedź. –

Powiązane problemy