簡體   English   中英

將屬性傳遞給自定義gradle任務

[英]Pass properties to custom gradle task

如何將屬性傳遞給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
    }

}

屬性名稱和版本是必需的,用戶需要將它們傳遞給任務。

我找到了解決方案:

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"
}

您可以使用-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"

有關Gradle的所有命令行選項,請訪問https://docs.gradle.org/current/userguide/gradle_command_line.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM