2010-03-15 15 views
6

Tôi đang cố di chuyển một ứng dụng Java được xây dựng bởi Ant thành Maven2. Trong số khác xây dựng thực hiện các hoạt động sau đây:Cách thực hiện các tác vụ được sắp xếp trong Maven2 build

1) Chạy một Doclet javadoc để tìm các file Java chú thích được ra bên ngoài sau khi dịch vụ Web
2) biên soạn một phần nhỏ của mã cho bước 3
3) chạy Axis java2wsdl trên mã biên dịch từ bước 2
4) tạo ra mã Java với WSDL2Java trên file wsdl từ bước 3
5) biên dịch toàn bộ mã

Khi cố gắng để "mavenize" quá trình này tôi có thể thực hiện từng nhiệm vụ tại một thời điểm nhưng không đạt được tất cả chúng theo thứ tự đó.

Để chứng minh pom của tôi và không tải bạn với các chi tiết tôi sẽ hiển thị các đoạn mã sau:

<build> 
<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <version>2.6.1</version> 
     <executions> 
      <execution> 
       <id>aggregate</id> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>aggregate</goal> 
       </goals> 
       <configuration>...</configuration> 
      </execution> 
     </executions> 
    </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.1</version> 
     <executions> 
      <execution> 
       <id>compileWSfiles</id> 
       <goals> 
        <goal>compile</goal> 
       </goals> 
       <phase>generate-sources</phase> 
       <configuration> 
        <includes> 
         <!-- include 3 source files --> 
        </includes> 
       </configuration> 

      </execution> 
     </executions> 
     </plugin> 
      <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>axistools-maven-plugin</artifactId> 
     <version>1.3</version> 
     <dependencies> 
      <dependency> 
       <groupId>axis</groupId> 
       <artifactId>axis</artifactId> 
       <version>1.3</version> 
      </dependency> 
     </dependencies> 
     <executions> 
      <execution> 
       <id>java2wsdl</id> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>java2wsdl</goal> 
       </goals> 
       <configuration>...</configuration> 
      </execution> 

      <execution> 
       <id>wsdl2java</id> 
       <phase>generate-sources</phase> 
            <goals> 
              <goal>wsdl2java</goal> 
            </goals> 
            <configuration>...</configuration> 
          </execution> 
     </executions> 
    </plugin> 
</plugins> 

Vấn đề chính là tôi đã không kiểm soát về trình tự của sự vật và nó là rõ ràng là quan trọng ở đây vì mỗi bước đầu ra là đầu vào bước tiếp theo.

Trả lời

6

Các trình cắm buộc được liên kết với cùng một pha Ngoài ra, hãy xem vấn đề có liên quan MNG-3719 (đặc biệt chú ý đến this comment). Vì tôi không nghĩ rằng "gian lận" của MNG-3719 là có thể trong trường hợp của bạn, đề nghị của tôi là để thử với Maven 2.0.8 :(Và vượt qua các ngón tay của bạn để không phải đối mặt với bất kỳ hồi quy.

+0

Cảm ơn Bạn có nghĩ rằng viết plugin của riêng tôi thực hiện các hoạt động trên là một giải pháp khả thi, tôi có thể tạo một plugin với mục tiêu chạy các mục tiêu plugin khác không? – rperez

+0

@rperez Tôi không chắc chắn (xem http://www.mail-archive.com/ [email protected]/msg104478.html) Tôi chưa bao giờ thử điều này. –