2011-01-29 23 views

Trả lời

5

Bạn có thể khai báo tất cả các plugin trong pom cha mẹ của bạn trong phạm vi <pluginManagement>. Trong mỗi đứa trẻ, bạn có thể khai báo các plugin được sử dụng bởi đứa trẻ đó. Bằng cách này, bạn có thể bao gồm hoặc loại trừ các plugin nếu thích hợp.

Bạn cũng có thể xem liên quan này SO discussion.

+3

Trong trường hợp của tôi, tôi có một plugin được sử dụng bởi 9 trong số 10 mô-đun phụ. Tôi nghĩ rằng sẽ dễ dàng hơn khi đặt các plugin trong phụ huynh và để cho 9 đứa trẻ kế thừa và nói với người thứ 10 để loại trừ. Tôi biết cách bạn đang nói về. Chỉ cần tự hỏi nếu nó có thể chỉ loại trừ một plugin từ một dự án con .... Nếu maven không có khả năng đó, đó là tốt. Tôi không biết maven tất cả cùng nhau, do đó, được đăng ở đây để tìm hiểu xem maven có loại tính năng đó không. – user373201

+6

Câu trả lời này không thực sự trả lời câu hỏi về cách loại trừ một số plugin được kế thừa cụ thể. –

7

Tôi đã có một yêu cầu tương tự để chạy một số plugin ở trẻ chứ không phải POM mẹ. tôi đã đạt được điều này bằng cách nêu rõ <skip>true</skip> trong POM mẹ.

mục mẹ pom dưới

<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> 

Mục pom dự án con dưới

<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

Bạn có thể sử dụng một profile kích hoạt bằng một tài sản để xác định xem các plugin được sử dụng hoặc không phải. Theo mặc định, thuộc tính có thể được kích hoạt và một dự án bạn không muốn sử dụng nó có thể bao gồm giá trị thuộc tính để loại trừ plugin.

3

Bạn có thể xác định tất cả các plugin trong pom mẹ trong pluginManagement phần

<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> 

Và sau trong poms cha mẹ và con bạn có thể kiểm soát các giai đoạn thực hiện các plugin này

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

Nếu bạn dán này trong pom cha mẹ không quên tùy chọn <inherited>false</inherited>, kế thừa thực hiện vô hiệu hóa của nó trong pom con.

+0

làm việc cho tôi, cảm ơn – sendreams

+0

Điều này hoạt động như một sự quyến rũ và thậm chí có lợi thế là các plugin không bao giờ được thực hiện ở nơi đầu tiên. Sử dụng 'ignore' sẽ thực sự vẫn gọi vào plugin, nhưng hãy để plugin quyết định. Sử dụng 'phase = none' ngăn Maven thậm chí tra cứu đường dẫn lớp của plugin, điều này có thể hữu ích trong một số trường hợp. – ctron

Các vấn đề liên quan