명령 줄에서 Java 클래스로 인수를 전달하려고합니다. 나는이 게시물을 따랐습니다 : 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
}
*/
}
위의 하드 코딩 된 args 값의 출력은 다음과 같습니다.
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 섹션을 사용하도록 코드를 변경하고 명령 줄에서 "demo"를 인수로 전달하면 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 에서 문제를 설명 하는 간단한 테스트 프로젝트가 있습니다 .
이것은 Gradle 1.0-rc-3을 사용하고 있습니다. NullPointer는 다음 코드 줄에서 가져옵니다.
args group
작업 정의 전에 다음 할당을 추가했지만 결과는 변경되지 않았습니다.
group = hasProperty('group') ? group : 'nosuchgroup'
gradle에 명령 줄 인수를 전달하는 방법에 대한 모든 포인터는 감사합니다.