2012-03-16 5 views
6

मैं ग्रैडल में एक निर्देशिका को बाहर करना चाहता हूं .. मैं नीचे दिए गए कोड का उपयोग कर रहा हूं .. जब मैं minus करता हूं (मैंने exclude निर्देशिका भी कोशिश की है जिसे मैं कोशिश कर रहा हूं ।?स्रोत से निर्देशिका को बाहर निकालेंसेट में काम नहीं कर रहा है

apply plugin: 'java' 

sourceSets { 
    test { 
     java { 
      srcDirs = ['src/test/unit/java'] 
     } 
    } 
} 

task outputDirs << { sourceSets.test.java.srcDirs.each{f -> println(f)}} 

यह रिया: निकाल सकते हैं (जब मैं उत्पादन यह अंत में)

सुझाव

apply plugin: 'java' 

sourceSets { 
    test { 
    java { 
     srcDirs 'src/test/unit/java' 
     minus 'src/test/java'    
    } 
    } 
} 

task outputDirs << { sourceSets.test.java.srcDirs.each{f -> println(f)}} 
+0

Gradle किस संस्करण का उपयोग कर रहे हैं? –

उत्तर

8

ऐसा करें अभी भी srcDirs में मौजूद है srcDirs प्रॉपर्टी में स्रोत निर्देशिकाओं (यहां केवल एक) की सूची ssigns।

srcDirs = 'src/test/unit/java' 

आपके नमूने के रूप में, केवल मौजूदा स्रोतों में एक और स्रोत फ़ोल्डर जोड़ता है।

संबंध है, रेने

+0

धन्यवाद, यह काम करता है .. दूसरा प्रश्न: काम को कम या बहिष्कृत क्यों नहीं किया? – vicsz

+0

ठीक है, मैं इसे समझाने की कोशिश करता हूं: जावा बंद करने के भीतर सभी कॉल –

+0

ठीक है, कुछ नोट्स जो कारण को स्पष्ट कर सकते हैं: - gradle dsl में srcDirs 'src/test/unit/java' प्रोग्रामेटिक रूप से SourceDirectorySet # srcDirs (ऑब्जेक्ट ... srcPaths) - स्रोत डायरेक्टरी का प्रकार फ़ाइलकोलेक्शन है - फ़ाइलकोलेक्शन पर कॉलिंग माइनस दिए गए फ़ाइल को संशोधित नहीं करता है, बल्कि इसके बजाय एक नया फ़ाइल चयन बनाएं और वापस करें। यही कारण है कि "शून्य" का कोई प्रभाव नहीं पड़ता है। - बस बोली जाने वाली, काम को "शून्य" कॉल के रूप में उसी तरह से बाहर करता है। - यहां कुछ सामान साफ ​​करने के लिए SourceDirectorySet इंटरफ़ेस पर कुछ टोडो हैं। सुनिश्चित नहीं है कि यह सफाई 1.0 का हिस्सा होगी या नहीं –

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