2012-12-17 24 views
15

में एक सकर्मक परियोजना निर्भरताआप Gradle

dependencies { 
    compile project(':subproject') { 
     transitive = false 
    } 
} 

यह Gradle 1.3 में ठीक से काम नहीं करता है को देखते हुए कैसे रोक सकता हूं। (यानी सभी निर्भरताओं को उपप्रोजेक्ट से शामिल किया गया है)

क्या यह एक बग है या परियोजना निर्भरताओं को छोड़कर एक अलग वाक्यविन्यास है?

+3

मैं यह है कि अभी तक इसका समाधान नहीं किया गया है पर एक Jira पाया है, लेकिन इस प्रकार एक काम के आसपास होने के लिए वहाँ लगता है: परियोजना के आसपास अतिरिक्त कोष्ठक जोड़ने जैसा कि संकलित करता है (प्रोजेक्ट (': सबप्रोजेक्ट')) {transitive = false} - मैं इसका उपयोग कर रहा हूं और यह मेरे लिए काम कर रहा है - सहज नहीं लेकिन प्रभावी –

+0

इस टिप्पणी को चिह्नित किया जाना चाहिए। इसका दुर्भाग्यपूर्ण पहलू यह है कि एक बार जब आप उन सभी परियोजनाओं को बहिष्कृत करते हैं, तो यदि आप उस सेट में से एक को शामिल करते हैं (क्योंकि आपको केवल उस सूची में जारों का सबसेट चाहिए) तो आपको नहीं मिलेंगे। इसलिए पागल परियोजनाओं के लिए बस कुछ सरल करने के लिए डीपी द्वारा डिप्टी को छोड़कर मजा आता है। – Core

उत्तर

29

दिखाया वाक्य रचना Project वस्तु है, जो है, जब तक कहीं और इस्तेमाल किया है, इसका कोई प्रभाव नहीं होगा के लिए एक नया (तथाकथित गतिशील) transitive संपत्ति जोड़ देगा। आपको एक चेतावनी मिलेगी कि गतिशील गुणों को बहिष्कृत किया गया है, जो बिल्ड स्क्रिप्ट में संभावित गलती का संकेत है, और ग्रैडल 2.0 में हार्ड विफल हो जाएगा।

सही सिंटैक्स (जैसा कि आप पहले से ही संकेत दिया) है:

dependencies { 
    compile(project(':subproject')) { 
     transitive = false 
    } 
} 
+2

'ऐसी कोई संपत्ति नहीं: कक्षा के लिए संक्रमणीय: org.gradle.api.internal.project.DefaultProject_Decorated' – MariuszS

+0

सिंटैक्स तय हो गया है, लेकिन निर्भरता भी मूल परियोजना के लिए संक्रमणीय है। –