2012-02-22 29 views
8

Đoạn mã sau đây là trích đoạn cấu hình của plugin maven-cargo, nhưng câu hỏi độc lập với plugin cụ thể đó.Maven - xác định thứ tự các mục tiêu plugin khác nhau trong cùng một giai đoạn

  <executions> 
       <execution> 
        <id>start</id> 
        <phase>pre-integration-test</phase> 
        <goals> 
         <goal>deploy</goal> 
         <goal>start</goal> 
        </goals> 
       </execution> 
      </executions> 

Cấu hình này (cho phép chỉ cần gọi nó cắm A) sẽ đợi cho đến khi pre-integration-test giai đoạn, sau đó bắn các mục tiêu của nó deploystart (theo thứ tự đó).

Giả sử tôi có một plugin B khác có liên quan trong cùng một pha. Các tuỳ chọn của tôi là gì

  1. thực hiện các plugin Mục tiêu của B trước (sau) A? mục tiêu
  2. thực Plugin B ở giữa Plugin mục tiêu của một (triển khai -> someStuff -> bắt đầu) (> bắt đầu someStuff - -> triển khai)

Tôi hình dung rằng câu trả lời cho (1) là here, liên kết thứ tự của các mục tiêu theo thứ tự định nghĩa plugin trong POM. Nhưng tôi không có ý tưởng về (2).

Trả lời

10

Bạn nói đúng về (1). Nếu hai plugin được thực hiện trên cùng một pha, thì chúng sẽ được thực hiện theo thứ tự chúng được khai báo trong tệp pom.xml.

Tôi không chắc chắn 100% về (2), nhưng tôi nghĩ rằng nó không thể nếu không có hacks, như sử dụng exec-maven-plugin, ví dụ:

<!-- deploy --> 
<plugin> 
    <groupId>org.codehaus.cargo</groupId> 
    <artifactId>cargo-maven2-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>deploy</id> 
     <phase>pre-integration-test</phase> 
     <goals> 
     <goal>deploy</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
<!-- do something --> 
<plugin> 
    <groupId>some_other_plugin</groupId> 
    <artifactId>some_other_plugin</artifactId> 
    <executions> 
    <execution> 
     <id>someStuff</id> 
     <phase>pre-integration-test</phase> 
     <goals> 
     <goal>some_goal</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
<!-- start --> 
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>start</id> 
     <phase>pre-integration-test</phase> 
     <goals> 
     <goal>exec</goal> 
     </goals> 
     <configuration> 
     <executable>mvn</executable> 
     <commandlineArgs>org.codehaus.cargo:cargo-maven2-plugin:start -Dparam=value</commandlineArgs> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+2

* mà * là đẹp một :-) –

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