Tôi đang cố chuyển một đối số từ dòng lệnh tới một lớp java. Tôi theo dõi bài đăng này: http://gradle.1045684.n5.nabble.com/Gradle-application-plugin-question-td5539555.html nhưng mã không hoạt động đối với tôi (có lẽ nó không có nghĩa là cho JavaExec?). Đây là những gì tôi đã cố gắng:Làm thế nào để chuyển đối số từ dòng lệnh đến gradle
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
}
*/
}
Sản lượng từ giá trị args trên cứng mã hoá là:
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
Tuy nhiên, khi tôi thay đổi mã để sử dụng phần hasProperty và vượt qua "giới thiệu" như một Lập luận trên dòng lệnh, tôi nhận được một 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)
có một dự án thử nghiệm đơn giản có sẵn tại http://gradle.1045684.n5.nabble.com/file/n5709919/testgradle.zip minh họa vấn đề.
Điều này đang sử dụng Gradle 1.0-rc-3. Các NullPointer là từ dòng mã này:
args group
tôi thêm nhiệm vụ sau đây trước khi định nghĩa công việc, nhưng nó không thay đổi kết quả:
group = hasProperty('group') ? group : 'nosuchgroup'
Bất kỳ gợi ý về cách để vượt qua dòng lệnh đối số để gradle đánh giá cao.
Cảm ơn đã cho tôi biết! Thay đổi tên thành testngGroup đã khắc phục được sự cố. Đã tìm thấy danh sách các thuộc tính được xác định trước trong bảng 13.1 tại http://gradle.org/docs/current/userguide/writing_build_scripts.html. – Lidia
Chỉ cần cập nhật liên kết: https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_properties_and_system_properties – Kikiwa