2011-01-29 19 views

Odpowiedz

5

Możesz zadeklarować wszystkie wtyczki w twoim pom-rodzicu w zakresie <pluginManagement>. W każdym dziecku możesz zadeklarować wtyczki używane przez to dziecko. W ten sposób możesz odpowiednio uwzględnić lub wykluczyć wtyczki.

Możesz również spojrzeć na to powiązane SO discussion.

+3

W moim przypadku mam wtyczkę, która jest używana przez 9 na 10 podmodułów. Pomyślałem, że łatwiej byłoby umieścić wtyczkę w rodzicu i pozwolić dziewięciorgu dzieciom odziedziczyć i powiedzieć dziesiątemu, aby wykluczyć. Wiem, o czym mówisz. Zastanawiasz się, czy możliwe jest wyłączenie wtyczki z projektu podrzędnego ... Jeśli maven nie ma takiej możliwości, to jest w porządku. Nie znam wszystkich mavenów, więc napisałem tutaj, żeby dowiedzieć się, czy maven ma taką cechę. – user373201

+6

Ta odpowiedź nie odpowiada na pytanie, jak wykluczyć jakąś dziedziczoną wtyczkę. –

7

Miałem podobny wymóg, aby uruchomić niektóre wtyczki w dziecku, ale nie nadrzędny POM. osiągnąłem to, podając <skip>true</skip> w macierzystym POM.

pozycja dominująca pom jest poniżej

<plugin> 
     <groupId>eviware</groupId> 
     <artifactId>maven-soapui-plugin</artifactId> 
     <version>4.0.0</version> 
     <inherited>false</inherited> 
     <dependencies> 
      <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8.2</version> 
      </dependency> 
     </dependencies> 
     <configuration> 
      <skip>true</skip> 
     </configuration> 
     </plugin> 

Wpis pom projekt dziecko jest poniżej

<plugins> 
     <plugin> 
      <groupId>eviware</groupId> 
      <artifactId>maven-soapui-plugin</artifactId> 
      <version>4.0.0</version> 
      <configuration> 
       <settingsFile>site-service-web/src/test/soapui/soapui-settings.xml</settingsFile> 
       <projectFile>site-service-web/src/test/soapui/PodifiSite-soapui-project.xml</projectFile> 
       <outputFolder>site-service-web/target/surefire-reports</outputFolder> 
       <junitReport>true</junitReport> 
       <exportwAll>true</exportwAll> 
       <printReport>true</printReport> 
      </configuration> 
     </plugin> 
    </plugins> 
1

Można użyć profile aktywowany przez nieruchomości w celu ustalenia, czy wtyczka jest używany lub nie. Domyślnie właściwość mogła zostać aktywowana, a jeden projekt, w którym nie chcesz jej używać, może zawierać wartość właściwości, aby wykluczyć wtyczkę.

3

Można zdefiniować wszystkie wtyczki w macierzystej pom w sekcji pluginManagement

<pluginManagement> 
      <plugins> 
       ... 
       <plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <version>2.8</version> 
        <executions> 
         <execution> 
          <id>unpack-dependencies</id> 
          <phase>generate-sources</phase> 
          <goals> 
           <goal>unpack-dependencies</goal> 
          </goals> 
          <configuration> 
           <includeTypes>tar.bz2</includeTypes> 
           <outputDirectory>${project.basedir}/target/dependencies</outputDirectory> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
       ... 
      </plugins> 
</pluginManagement> 

A przecież w nadrzędnych i podrzędnych poms można kontrolować fazie realizacji tej wtyczki

<plugins> 
     <plugin> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <inherited>false</inherited> 
      <executions> 
       <execution> 
        <id>unpack-dependencies</id> 
        <phase>none</phase> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 

Jeśli wklej to w rodzic pom nie zapomnij opcji <inherited>false</inherited>, jego wyłączenie dziedziczenia wykonania w potomnej pom.

+0

dla mnie działa, dziękuje – sendreams

+0

Działa to jak urok, a nawet ma tę zaletę, że wtyczka nigdy nie jest wykonywana w pierwszej kolejności. Użycie 'ignore' nadal będzie wywoływać wtyczkę, ale niech wtyczka się zdecyduje. Użycie 'phase = none' uniemożliwia Mavenowi nawet wyszukanie ścieżki klasy wtyczki, co może być pomocne w niektórych scenariuszach. – ctron

Powiązane problemy