2012-06-12 36 views
5

Có cách nào để thực hiện thực thi có điều kiện đoạn mã trong tệp pom.xml không? yêu cầu của tôi là để sao chép một tập tin/thư mục để triển khai cấu trúc dựa trên biến quy định tại pom.xml ...Maven - Cách thực hiện thực thi có điều kiện

ví dụ:

<if> 
    < equals arg1="package" arg2="package"/> 
     < then> 
       .... 
      < /then> 
    < /if> 

Không chắc làm thế nào tôi có thể đạt được điều này!

Mọi con trỏ sẽ được đánh giá cao.

Cảm ơn, SR

Trả lời

4

Có lẽ bạn sẽ cần phải sử dụng Maven AntRun Plugin cho điều đó.

Nói chung, không có biểu thức có điều kiện trong POM. Điều duy nhất tương tự bằng cách nào đó với điều này là build profiles có thể được kích hoạt trên một số điều kiện nhất định, tuy nhiên chúng có thể không phù hợp với trường hợp hiện tại của bạn.

Và cuối cùng, đề xuất của tôi ở đây. Chúng tôi không biết chính xác trường hợp của bạn là gì và thậm chí không có bất kỳ đoạn mã thực nào, tuy nhiên từ kinh nghiệm của tôi, việc sử dụng những thứ như vậy trong Maven thật không bình thường. Đối với tôi nó có mùi giống như một số vấn đề với hiểu biết Maven, cấu trúc dự án hoặc những thứ như thế. Tôi có thể sai và có thể trường hợp của bạn thực sự cần đến điều đó, nhưng hãy cân nhắc các tùy chọn khác để phù hợp với cách tiếp cận và quy ước mặc định của Maven.

+0

Cảm ơn Michal. sẽ thử cấu hình ... Ok, đây là trường hợp tôi đang cố gắng thực hiện. Tôi đã định nghĩa các trình cắm thêm cho jspc, cobertura và findbugs với dự án của tôi. mọi lúc tôi chạy xây dựng tất cả các plugin này được thực thi; những gì tôi đã làm là, tôi đã định nghĩa một biến được gọi là pha trong pom.xml (giá trị có thể null/gói) .. khi giá trị này được đặt thành null ... các plugin này không được thực hiện. Trong trường hợp này, tôi muốn thay đổi plugin chiến tranh của mình để bỏ qua logic sao chép (báo cáo sao chép logic). – user1450759

+0

OK, vì vậy có vẻ như các cấu hình sẽ hoạt động ở đây. –

+0

Đây là lý do tại sao Gradle tốt hơn rất nhiều - có vấn đề chính xác này. – JamesC

2

Vâng, bạn có thể sử dụng sốcủa Maven để thực hiện việc đó.

Hoặc bạn có thể xem qua số Ant Tasks của Maven.

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