2010-05-07 28 views
7

Vấn đề là tôi đang cố gắng xây dựng một dự án có trong tài nguyên của nó một tệp build.xml. Về cơ bản, tôi gói dự án của tôi như một cái lọ với Maven2, và sau đó sử dụng trình cài đặt kiến ​​để cài đặt dự án của tôi.Với Maven, làm cách nào để ngăn Maven lọc các thuộc tính nhất định nhưng cho phép người khác?

Có một thuộc tính trong tệp build.xml mà tôi cần lọc là build.date, nhưng có các thuộc tính khác mà tôi không muốn lọc, như $ {basedir}, bởi vì nó được sử dụng bởi kiến trình cài đặt nhưng được thay thế bằng biến dựa trên của Maven. Vì vậy, tôi cần phải bằng cách nào đó nói với Maven để lọc $ {build.date}, nhưng không phải $ {basedir}.

tôi đã cố gắng tạo ra một tập tin thuộc tính như một bộ lọc với "basedir = $ {basedir}" là một trong những tài sản, nhưng tôi nhận được lỗi sau:

Giải quyết biểu: '$ {basedir}': Đã phát hiện chu kỳ biểu thức đệ quy sau: [basedir]

Mọi đề xuất sẽ được đánh giá cao.

Cảm ơn,

B.J.

Trả lời

7

Theo hiểu biết của tôi, điều này là không thể, bạn không thể ngăn chặn maven từ lọc một tài sản nhất định. Vì vậy, một trong hai:

  • không sử dụng tính Maven như ${basedir} trong build.xml của bạn (nếu có thể)
  • không sử dụng Maven lọc nhưng sử dụng Maven Antrun Plugin để thay các ${build.date} và chỉ này tài sản (xem this answer)
  • thay đổi các tham số delimiters của các plugin nguồn lực và sử dụng ví dụ @[email protected] thay vì ${build.date} trong bạn build.xml

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.4.2</version> 
        <configuration> 
        <useDefaultDelimiters>false</useDefaultDelimiters> 
        <delimiters> 
        <delimiter>@</delimiter><!-- for Ant-like tokens style --> 
        </delimiters> 
        </configuration> 
    </plugin> 
    
+0

Cảm ơn bạn đã giúp đỡ. Giải pháp thứ 3 là giải pháp lựa chọn của tôi. Tôi đã phải thêm false Benny

+0

@Benny Ah vâng, quên mất điều đó (tôi đã cập nhật câu trả lời của mình cho phù hợp). –

+0

@Benny BTW, thường có ý nghĩa với [cũng upvote câu trả lời được chấp nhận] (http://meta.stackexchange.com/questions/686/accepting-answer-without-upvoting);) –

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