2012-08-24 32 views
5

Tôi có plugin maven-jaxb2. Tôi tạo ra các đối tượng jaxb và tham chiếu nó trong các lớp khác của project.I đã đặt plugin jaxb và trình biên dịch plugin dưới thẻ pluginManagement. Maven đang thực thi giai đoạn biên dịch đầu tiên so với giai đoạn tạo ra, nếu như tôi xóa thẻ pluginManagement, nó hoạt động tốt, giai đoạn tạo đầu tiên được thực hiện và tất cả đối tượng jaxb được tạo và sau đó biên dịch được thực thi. Do thẻ pluginManagement, dự án của tôi không biên dịch. Thẻ pluginManagement chỉ được sử dụng để xác định tất cả các plugin trong pom cha mẹ để pom con có thể tham khảo các plugin này? Dự án của tôi không phải là một dự án đa mô-đun.mục tiêu maven không thực hiện đúng nếu plugin được xác định trong pluginManagement

<pluginManagement>  
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.jvnet.jaxb2.maven2</groupId> 
      <artifactId>maven-jaxb2-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>generate</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <schemaDirectory>${basedir}/src/main/resources/schema</schemaDirectory> 
       <generatePackage>com.common.dto</generatePackage> 
       <schemaIncludes> 
        <include>*.xsd</include> 
       </schemaIncludes> 
       <removeOldOutput>false</removeOldOutput> 
       <strict>false</strict> 
       <verbose>true</verbose> 
       <forceRegenerate>true</forceRegenerate> 
       <extension>true</extension> 
      </configuration> 
     </plugin> 
    </plugins> 
</pluginManagement> 

Trả lời

5

Vâng, <pluginManagement> được sử dụng để tạo ra các cấu hình sẵn sàng để sử dụng, nhưng không tự động kích hoạt các plugin của bạn - bạn vẫn cần phải bao gồm họ. Vì vậy, trong thực tế bạn là đúng, <pluginManagement>, giống như <dependencyManagement> rất hữu ích trong pom cha mẹ để tập trung cấu hình plugin và quản lý phụ thuộc.

hiệu quả, 'tuyên bố' plugins của bạn trong những lợi ích mô-đun ngay từ một cú pháp nhiều nhỏ gọn hơn:

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
    </plugin> 

    <plugin> 
     <groupId>org.jvnet.jaxb2.maven2</groupId> 
     <artifactId>maven-jaxb2-plugin</artifactId> 
    </plugin> 
</plugins> 
Các vấn đề liên quan