2012-09-27 18 views
7

मेरे पास विकास संबंधी निर्देशिका src/main/resources/certs/test है जो एक बाहरी पुस्तकालय के लिए आवश्यक है। इसमें कुछ प्रमाण फ़ाइलें हैं जिन्हें उत्पादन निर्माण में आवश्यक नहीं है।Gradle 1.2: संसाधन स्रोत के तहत निर्देशिका बहिष्कृत करें

फिलहाल मैं build.gradle में ब्लॉक निम्नलिखित के साथ कि निर्देशिका के अंतर्गत सब कुछ को बाहर:

sourceSets { 
    main { 
     resources { 
      exclude '**/test/*' 
     } 
    } 
} 

यह काम अच्छी तरह से करता है, लेकिन बदसूरत खाली निर्देशिका छोड़ देता है test वहाँ झूठ बोल रही है। अंतिम युद्ध में इस निर्देशिका को शामिल करने के मेरे विकल्प क्या हैं?

मैंने '**/test' को छोड़कर कोशिश की है, लेकिन यह बिल्कुल काम नहीं करता है।

मैं युद्ध प्लगइन और Gradle 1.2

उत्तर

26

Gradle 1.1 का उपयोग करना, यह मेरे लिए काम करता है:

apply plugin: 'war' 

sourceSets { 
    main { 
     resources { 
      exclude '**/test/*' 
      exclude 'certs/test' 
     } 
    } 
} 
+1

एक बार मैंने इसे साफ कर लिया। 'ग्रेल्ड क्लीन बिल्ड' – Philippe

+0

आप प्रत्येक फ़ाइल और फ़ोल्डर और उप-फ़ोल्डर को बाहर करने के लिए निम्न का उपयोग कर सकते हैं: 'संसाधन {बहिष्कृत करें' *। * 'बहिष्कृत करें' **/'} ' –

0

एक आम projet लेआउट test स्रोत सेट के तहत परीक्षण फ़ाइलें डाल करने के लिए है, इस तरह से आप उन्हें main स्रोत सेट से बाहर करने के लिए की जरूरत नहीं है का उपयोग करें।

Gradle documentation से, डिफ़ॉल्ट परियोजना लेआउट इस तरह है:

src/main/java  Production Java source 
src/main/resources Production resources 
src/test/java  Test Java source 
src/test/resources Test resources 
+0

मुझे मानक लेआउट पता है। प्रश्न मेरे प्रोजेक्ट के लेआउट के बारे में नहीं है और यह कितना मानक है, लेकिन निर्देशिका को बाहर करने के लिए ग्रैडल funcionality। मैं अपनी परियोजना को दोबारा सुधार सकता हूं, लेकिन प्रारंभिक सवाल बनी हुई है। –

+0

यह लेआउट मानक है, और [पूरी तरह से अव्यवहारिक] (http://blog.ltgt.net/maven-is-broken-by- डिज़ाइन) ("प्रोजेक्ट लेआउट" के लिए खोजें)। इसे छोड़कर मैं हर दिन आनंद लेता हूं। – maaartinus

4

मैं एक जार में उत्पादन फाइलों के साथ एक ऐसी ही समस्या थी फ़ाइल (हालांकि मेरा परीक्षण फाइल नहीं थे)। मैंने इसे निम्नलिखित के साथ हल किया:

jar { 
    exclude ("DIRECTORY-TO-EXCLUDE/**") 
} 

उदा।

jar { 
    exclude ("test/**") 
} 
संबंधित मुद्दे