मैं कमांड लाइन से जावा क्लास में एक तर्क पारित करने की कोशिश कर रहा हूं। मैंने इस पोस्ट का अनुसरण किया: http://gradle.1045684.n5.nabble.com/Gradle-application-plugin-question-td5539555.html लेकिन कोड मेरे लिए काम नहीं करता है (शायद यह JavaExec के लिए नहीं है?)। यहाँ मैं कोशिश की है:
task listTests(type:JavaExec){
main = "util.TestGroupScanner"
classpath = sourceSets.util.runtimeClasspath
// this works...
args 'demo'
/*
// this does not work!
if (project.hasProperty("group")){
args group
}
*/
}
उपरोक्त हार्ड कोडित आर्ग्स वैल्यू से आउटपुट है:
C:\ws\svn\sqe\sandbox\selenium2forbg\testgradle>g listTests
:compileUtilJava UP-TO-DATE
:processUtilResources UP-TO-DATE
:utilClasses UP-TO-DATE
:listTests
Received argument: demo
BUILD SUCCESSFUL
Total time: 13.422 secs
हालाँकि, एक बार जब मैं hasProperty अनुभाग का उपयोग करने के लिए कोड को बदल देता हूं और कमांड लाइन पर एक तर्क के रूप में "डेमो" पास करता हूं, तो मुझे NullPointerException मिलती है:
C:\ws\svn\sqe\sandbox\selenium2forbg\testgradle>g listTests -Pgroup=demo -s
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\ws\svn\sqe\sandbox\selenium2forbg\testgradle\build.gradle' line:25
* What went wrong:
A problem occurred evaluating root project 'testgradle'.
> java.lang.NullPointerException (no error message)
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project
'testgradle'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:127)
at org.gradle.configuration.BuildScriptProcessor.evaluate(BuildScriptProcessor.java:38)
Http://gradle.1045684.n5.nabble.com/file/n5709919/testgradle.zip पर एक सरल परीक्षण परियोजना उपलब्ध है जो समस्या का चित्रण करती है।
यह ग्रैडल 1.0-आरसी -3 का उपयोग कर रहा है। NullPointer कोड की इस पंक्ति से है:
args group
मैंने टास्क डेफिनिशन से पहले निम्नलिखित असाइनमेंट जोड़े थे, लेकिन इसने परिणाम को नहीं बदला:
group = hasProperty('group') ? group : 'nosuchgroup'
सराहना करने के लिए कमांड लाइन तर्कों को पारित करने के तरीके पर कोई संकेत।