2010-02-22 27 views
7

Tôi có một dự án đang sử dụng một số cấu hình. Mỗi cấu hình sử dụng plugin sau đây:Maven: sử dụng các plugin chung/chia sẻ khi làm việc với nhiều cấu hình

  • maven-biên dịch-plugin
  • maven-nguồn-plugin
  • maven-antrun-plugin
  • maven-surefire-plugin
  • maven-war- plugin

Dấu được in đậm là plugin duy nhất có sự khác biệt giữa các cấu hình (di các tập tin cấu hình fferent sẽ được sao chép bằng cách sử dụng plugin antrun). 4 plugin khác được cấu hình chính xác như nhau cho tất cả các cấu hình.

Câu hỏi đặt ra là: có cách nào để bao gồm các plugin phổ biến này chỉ một lần nhưng vẫn sử dụng chúng cho tất cả cấu hình theo mặc định?

Cái gì như:

<shared><plugin1><plugin2>...</shared>
<profile><plugin3></profile>
<profile><plugin3></profile>
...

cảm ơn,
Stijn

Trả lời

10

Nếu một plugin được sử dụng bởi tất cả các hồ sơ, chỉ cần xác định nó trong <build> phần:

<project> 
... 
    <build> 
     <plugins> 
      Your shared plugins go here... 
     </plugins> 

    <profiles> 
     Definition of profiles... 
    </profiles> 
</project> 

Bằng cách này, bạn sẽ chỉ xác định plugin antrun trong khối profiles.

+0

cảm ơn bạn đã trả lời nhanh; đây là những gì một tên trộm đầu tiên (vài ngày trước) nhưng sau đó nó đã cho tôi xây dựng lỗi. Tôi đã thử nó một lần nữa và bây giờ nó có vẻ làm việc tốt nên dường như các lỗi có một nguyên nhân khác nhau. –

2

Chỉ cần bao gồm các plugin phổ biến ở phần build của bạn:

<build> 
    <plugins> 
     <plugin> 
      <groupId>...</groupId> 
      <artifactId>plugin1</artifactId> 
     </plugin> 
     ... 
    </plugins> 
</build> 

Sau đó thêm các plugin cụ thể trong hồ sơ của bạn:

<profiles> 
    <profile> 
     <id>...</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin3</artifactId> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 

Bạn cũng có thể cấu hình các plugin tương tự khác nhau trong các cấu hình khác nhau theo cách này :

<profiles> 
    <profile> 
     <id>profile1</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin1</artifactId> 
        <configuration> 
         <setting>value1</setting> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
    <profile> 
     <id>profile2</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>...</groupId> 
        <artifactId>plugin1</artifactId> 
        <configuration> 
         <setting>value2</setting> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 
+0

Péter, cảm ơn bạn đã trả lời nhanh chóng. –

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