2015-12-30 12 views
9

में एक कस्टम स्वतंत्र ग्रेडल कार्य निष्पादित करें मेरे पास एकाधिक मॉड्यूल के साथ एक एंड्रॉइड प्रोजेक्ट है। मैं मॉड्यूल में से एक से एक कस्टम ग्रेडल कार्य चलाने की कोशिश कर रहा हूं, लेकिन हर बार जब मैं मॉड्यूल में और अन्य मॉड्यूल में अन्य सभी ग्रेडल कार्यों को चलाता हूं। मेरा काम किसी अन्य कार्यों पर निर्भर नहीं है। कार्य:एंड्रॉइड स्टूडियो

task helloTask{ 
    println "Hello task" 
} 

मैंने स्टूडियो में टर्मिनल विंडो के साथ-साथ कमांड लाइन से इस कार्य को चलाने का प्रयास किया है।

उत्तर

9

ग्रैडल कॉन्फ़िगरेशन चरण के दौरान << के साथ घोषित नहीं किए गए सभी कार्यों को निष्पादित करेगा। आप निष्पादन चरण तक किसी कार्य के निष्पादन में देरी करना चाहते हैं तो आप सिर्फ <<

अपने build.gradle

task helloConfiguration { task -> 
    println "Hello configuration phase task! $task.name" 
} 

/* Notice the `<<` this denotes to gradle to not execute 
* the closure during the configuration phase. Instead 
* delay closure's execution till the execution phase. 
*/ 
task helloExecution << { task -> 
    println "Hello execution phase task! $task.name" 
} 

helloExecution.dependsOn helloConfiguration 

में फिर जब helloExecution काम हम दोनों रन देखने को क्रियान्वित करने जोड़ सकता है, ताकि यह सुनिश्चित किया। अगला अगर हम केवल उन कार्यों को चलाने के लिए चाहते हैं जो बिल्ड को कॉन्फ़िगर करते हैं तो हम अलग-अलग कर सकते हैं अगर हम चाहते हैं और केवल एक ही कार्य चलाएं।

$ gradle helloExecution 
Hello configuration phase task! helloConfiguration 
Hello execution phase task! helloExecution 
:helloConfiguration UP-TO-DATE 
:helloExecution UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 0.64 secs 

$ gradle helloConfiguration 
Hello configuration phase task! helloConfiguration 
:helloConfiguration UP-TO-DATE 

BUILD SUCCESSFUL 

Total time: 0.784 secs 

कार्य है कि विन्यास चरण के दौरान चलाने हमेशा भले ही कोई कार्य आपूर्ति की जाती है, जो व्यवहार मैं अपने को देखने की उम्मीद है निष्पादित किया जाएगा। तो उपर्युक्त उदाहरण दिया गया। ध्यान दें कि कॉन्फ़िगरेशन कार्य चलाया गया लेकिन निष्पादन नहीं।

$ gradle 
Hello configuration phase task! helloConfiguration 
:help 

Welcome to Gradle 2.10. 

To run a build, run gradle <task> ... 

To see a list of available tasks, run gradle tasks 

To see a list of command-line options, run gradle --help 

To see more detail about a task, run gradle help --task <task> 

BUILD SUCCESSFUL 

Total time: 0.651 secs 

तो तुम 5 कार्यों कि विन्यास चरण में चला तो आप उन सभी को अंजाम देखना होगा काम की परवाह किए बिना आदेश पंक्ति आर्ग निष्पादन चरण के लक्ष्य के लिए आह्वान करने का प्रयास किया है, यदि।

+0

मैं एक ऐसा कार्य चलाने के लिए चाहता हूं जो किसी भी डिफ़ॉल्ट कार्य पर निर्भर नहीं है। बस एक विशेष कार्य चलाने के लिए चाहते हैं, यह संभव नहीं है? –

+0

यदि आप जानते हैं कि आप कौन से कार्यों को खत्म करना चाहते हैं तो आप उन्हें कमांड लाइन 'gradle myTask -x someTaskThatShouldNotRun' – JBirdVegas

+3

दुर्भाग्यवश इन उत्तरों में से कोई भी प्रश्न को संबोधित नहीं कर सकते हैं। – JoshuaTree

0

आप इसे प्राप्त करने के लिए रन कॉन्फ़िगरेशन का उपयोग कर सकते हैं। संदर्भ: https://developer.android.com/studio/run/rundebugconfig.html

रन पर जाएं -> कॉन्फ़िगरेशन संपादित करें -> नई कॉन्फ़िगरेशन जोड़ने के लिए + पर क्लिक करें -> आने वाली सूची से ग्रैडल का चयन करें। अंत में ऐप का चयन करें, और उस कार्य को टाइप करें जिसे आप चलाना चाहते हैं। एंड्रॉइड स्टूडियो भी इसके लिए स्वत: पूर्ण प्रदान करेगा।

बाद में, वह कार्य चलाना सीधे "रन" मेनू में एक विकल्प के रूप में उपलब्ध होगा।

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