Gradle不能使用ant可选(例如脚本任务中的ScriptRunner)

时间:2016-11-13 11:38:17

标签: gradle

当我执行导入的ant任务时,我得到一个例外:

java.lang.ClassNotFoundException: org.apache.tools.ant.util.optional.ScriptRunner

我知道我在任务中的许多地方使用脚本。我像这样使用它们:

<script manager="bsf" language="beanshell" classpath="${bshJar}"><![CDATA[

我想我必须在某种程度上为ant-apache-bsf jar添加一个依赖项。我试过了

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'org.apache.ant:ant-apache-bsf:+'
  }  
}

// Confirm the classpath contains optional jar.
// The jar contains the required class.
buildscript.configurations.classpath.each { println it }

def sc = new org.apache.tools.ant.util.optional.ScriptRunner();
println "sure we are able to create a script runner object: $sc"

ant.importBuild "build.xml"

没有成功。 Gradle用户指南中有一篇文章标题为42.9 Ant optional dependencies。不幸的是,我从这篇文章中唯一理解的是我的解决方案不起作用。那里给出的例子没有帮助。

如何利用我的ant脚本编写任务?

1 个答案:

答案 0 :(得分:0)

绝对不是接受的答案,只是解决方法

目前,您通过BSF引擎使用 Beanshell 脚本。您可以将脚本转换为 Javascript ,从JDK 6开始不需要任何依赖。语法略有不同,但以下ant任务在gradle + ant中有效的方框:

<script language="javascript"><![CDATA[