如何将属性传递给gradle自定义任务?在蚂蚁它看起来像这样:
public class MyCustomTask extends Task {
private String name;
private String version;
@Override
public void execute() throws BuildException {
// do the job
}
public void setName(String name) {
this.name = name;
}
public void setVersion(String version) {
this.version = version;
}
}
如何在gradle中完成?
class MyCustomTask extends DefaultTask {
private String name
private String version
@TaskAction
def build() {
// do the job
}
}
需要属性名称和版本,用户需要将它们传递给任务。
答案 0 :(得分:12)
我找到了解决方案:
class MyCustomTask extends DefaultTask {
@Input
String name
@Input
String version
@TaskAction
def build() {
// do the job
println name
println version
}
}
使用示例:
task exampleTask(type: MyCustomTask) {
name = "MyName"
version = "1.0"
}
答案 1 :(得分:4)
您可以使用-P
选项传递命令行参数。
例如:
public class MyCustomTask extends DefaultTask {
String name;
String version;
@TaskAction
public void execute() throws BuildException {
// do the job
}
}
Gradle任务
task exampleTask(type: MyCustomTask) {
name = project.property("name")
version = project.property("version")
}
Gradle命令
gradle -Pname="My name" -Pversion="1.2.3"
检查https://docs.gradle.org/current/userguide/gradle_command_line.html以获取Gradle的所有命令行选项。