2012-03-07 19 views
11

मैं धीरे-धीरे एक मेवेन रूपांतरण कर रहा हूं और निम्न कार्य करने के सर्वोत्तम तरीकों पर राय देखना चाहता हूं। वर्तमान में मेरे पास src/main/webapp के अंतर्गत कई फ़ाइलें हैं। कुछ को एक तरह से फ़िल्टर करने की आवश्यकता है और कुछ को दूसरे में फ़िल्टर करने की आवश्यकता है।src/main/webapp में फ़ाइलों के सबसेट को फ़िल्टर करने का क्रमिक तरीका क्या है?

अधिसूचनात्मक रूप से src/main/webapp के अंतर्गत मेरे पास एक निर्देशिका foo है जिसमें HTML और binaries शामिल हैं और वेबैप के तहत HTML सहित कई अन्य फ़ाइलें हैं। मैं केवल foo/*। Html फ़ाइलों को फ़िल्टर करना चाहता हूं।

मेरी काल्पनिक build.gradle में मैं या तो कर सकते हैं:

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

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

या अपनी निर्देशिका में प्रत्येक सबसेट कि डिफ़ॉल्ट

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

से कॉपी नहीं किया है या वहाँ एक और विकल्प मैं याद किया है के लिए कदम ?

+0

आपको किस प्रकार के फ़िल्टर करने की आवश्यकता है? मैं पहले ब्लॉक का उपयोग करता हूं, और अगर हटा देता हूं और सभी फाइलों पर फ़िल्टर को चलाने के लिए – Ethan

+0

धन्यवाद। आपका पहला विकल्प मेरे लिए बहुत अच्छा काम करता है। –

उत्तर

13

यदि मैं सही तरीके से प्रश्न समझता हूं, तो आप फ़ाइलों का उपयोग कर सकते हैं मैचिंग। साथ ही, मैं प्रक्रिया कार्य के हिस्से के रूप में इसे कार्य कार्य के विरोध में करता हूं। यह कुछ इस तरह दिखेगा:

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

मुझे पता प्रारंभिक सवाल 2 साल पहले पूछा गया था, तो यह शायद प्रश्नकर्ता में मदद नहीं करेगा, लेकिन शायद यह भविष्य में किसी और मदद कर सकता है।

+4

ध्यान दें कि आपको 'ReplaceTokens' आयात करना है, उदाहरण के लिए, 'import org.apache.tools.ant.filters.ReplaceTokens' – Leukipp

+0

यह उत्तर 'src/main/resource' में फ़ाइलों के लिए काम करता है लेकिन' src/main में फ़ाइलों के लिए नहीं/webapp' जैसा कि प्रश्न के शीर्षक में स्पष्ट रूप से पूछा गया है। – Codo

+0

src/main/webapp में फ़ाइलों के लिए समाधान क्या है ??? – KaviK

संबंधित मुद्दे

 संबंधित मुद्दे