0

我正在创建自己的 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. 我想将我的运行任务依赖于 Jar 任务,这样我就可以直接将 jar 用于我的运行
  2. 当我给classpath jar.archivePath 它的说法jar是没有初始化。
4

1 回答 1

0

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

于 2013-05-28T08:46:43.027 回答