当前位置: 首页 > 知识库问答 >
问题:

将属性传递给自定义渐变任务

柯浩壤
2023-03-14

如何将属性传递给gradle自定义任务?在ant中,它将如下所示:

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

}

在格拉德尔怎么做?

class MyCustomTask extends DefaultTask {

    private String name
    private String version

    @TaskAction
    def build() {
        // do the job
    }

}

属性名称和版本是必需的,用户需要将它们传递给任务。

共有2个答案

包翔
2023-03-14

可以使用-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 -Pname="My name" -Pversion="1.2.3"

检查https://docs.gradle.org/current/userguide/gradle_command_line.html用于Gradle的所有命令行选项。

鄢翰藻
2023-03-14

我找到了解决办法

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"
}
 类似资料:
  • Amazon EMR是否允许将系统属性传递给自定义jar,例如hadoop jar-Dkey=value-myjob。jar?(

  • 我目前正在进行struts升级(从struts 1.x迁移到2.x) 我的项目有一个自定义标记处理程序类,用于格式化应用程序中的数字 TLD文件 FormatNumberTag类 JSP 这里,AccountBean是bean,floatingRate是属性 1)在标签处理程序类上面,(org.apache.struts.util.请求Utils)请求Utils.lookup 相应的方法是什么 2

  • 小结:我想写一个gradle任务,它依赖于一个插件。我特别想使用plugin用于我的部署任务 我有以下项目结构 在我的主要身材中。gradle我导入插件并定义任务: 在中,我定义了它: 我显然收到了错误信息: 问题是,我可以(但不想)在main如下(无错误)

  • 问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标

  • 问题内容: 这是我的问题: 当我用JavaScript编写此代码时 // 好: 但是,当我尝试在属性标签中动态设置该值时,没有任何执行。 // 不好: 有人可以帮我吗? 问题答案: Struts标签,例如JSTL,EL等,是在服务器端执行的。执行完所有这些步骤后,仅HTML的最终页面将呈现给客户端。只有这样,JavaScript才能在页面上运行。 您不能混合使用javascript和Struts标

  • 我正在使用gradle tooling api,我遇到了下面的场景。有一个应用某个插件P的项目,它只在传递shouldApplyP属性时才创建任务T。 因此,如果您将运行,您将看不到任务T,但是如果您将运行,您将看到任务T。 在gradle tooling api中,一旦创建了,我就可以执行 但我看不到这个具体的任务。是否有方法将此属性传递给项目连接,以便在方法中显示该属性?