在Gradle插件中运行ant.java

时间:2013-05-28 06:29:07

标签: gradle

我正在创建自己的gradle插件。

在我的MyRunTask中扩展了DefaultTask

我正在写这样的东西

@TaskAction
public void run() {

    ant.java {
        main = 'org.mylang.runtime.main.Main'
        classpath = project.configurations.runtime
        args = [
            project.mylang.mainMylangClass
        ]
        classpath jar.archivePath

    }
}

run与Jar任务相关联,因此我可以在运行程序时直接使用jar。出于这个原因,我喜欢将Jar舔到我的ant.java

  1. 我想链接我的run taks取决于Jar任务,所以我可以直接使用jar来运行
  2. 当我提出classpath jar.archivePath时,jar的说法未初始化。

1 个答案:

答案 0 :(得分:0)

我建议使用Gradle的project.javaexec代替Ant的project.ant.java。您的任务类应该接受来自外部(通过插件或构建脚本)使用project.jar.archivePath配置的classpath类型的属性Iterable<File>,而不是硬编码jar.archivePath。 。如果您的任务类所做的只是执行project.javaexec,请考虑使用由插件或构建脚本配置的常规JavaExec任务。