2012-03-07 40 views
11

Tôi đang chuyển đổi maven thành gradle và muốn xem ý kiến ​​về cách tốt nhất để thực hiện những điều sau đây. Tôi hiện có nhiều tệp dưới src/main/webapp. Một số cần lọc theo một cách và một số cần lọc theo cách khác.Cách tốt nhất để lọc một tập con của tệp trong src/main/webapp là gì?

Tình cờ trong src/main/webapp Tôi có thư mục foo chứa html và nhị phân và trong webapp nhiều tệp khác bao gồm html. Tôi chỉ muốn lọc các tệp html/*.

Trong build.gradle danh nghĩa của tôi tôi hoặc là có thể làm:

war { 
    eachFile { 
    if(shouldFilter(it)) { 
     it.filter(ReplaceTokens, tokens: [key: 'value']) 
    } 
    } 
} 

def shouldFilter(input) { 
    input.path.contains('foo') && input.name.endsWith('.html') 
} 

hoặc di chuyển mỗi tập con vào thư mục riêng của mình mà không được sao chép theo mặc định

war { 
    from('src/main/foo-pre-filter') { 
    into 'foo' 
    include '*.html' 
    filter(ReplaceTokens, tokens: [key: 'value']) 
    } 
} 

Hoặc là có một tùy chọn tôi đã bỏ lỡ ?

+0

Các loại bộ lọc khác nhau mà bạn cần làm là gì? Tôi sẽ sử dụng khối đầu tiên, và loại bỏ nếu và để cho gradle chạy bộ lọc trên tất cả các tập tin – Ethan

+0

Cảm ơn. Lựa chọn đầu tiên của bạn làm việc tuyệt vời cho tôi. –

Trả lời

13

Nếu tôi hiểu đúng câu hỏi, bạn có thể sử dụng filesMatching. Ngoài ra, tôi sẽ làm điều đó như là một phần của nhiệm vụ processResources, trái ngược với nhiệm vụ chiến tranh. Nó sẽ trông giống như thế này:

processResources { 
    filesMatching('foo/*.html') { 
     filter(ReplaceTokens, tokens: [key: 'value']) 
    } 
} 

Tôi nhận ra câu hỏi đầu tiên được hỏi 2 năm trước, vì vậy điều này có thể sẽ không giúp người hỏi, nhưng có lẽ nó có thể giúp người khác trong tương lai.

+4

Lưu ý rằng bạn phải nhập 'ReplaceTokens', ví dụ:' import org.apache.tools.ant.filters.ReplaceTokens' – Leukipp

+0

Câu trả lời này hoạt động cho các tệp trong 'src/main/resources' nhưng không phải cho các tệp trong' src/main/webapp' được yêu cầu một cách rõ ràng trong tiêu đề của câu hỏi. – Codo

+0

Giải pháp cho các tệp trong src/main/webapp là gì ??? – KaviK

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