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

标签 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 脚本任务?

最佳答案

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

当前,您通过BSF引擎使用Beanshell脚本。您可以将脚本转换为Javascript ,从JDK 6开始就不需要任何依赖。语法有点不同,但是以下ant任务可以在gradle + ant中直接使用:

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

关于gradle - Gradle不能使用ant可选(例如脚本任务中的ScriptRunner),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40573359/

相关文章:

android - React-Native/metadata.xml 给我一个 403 禁止

java - 无法获得类型为org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication的对象的未知属性 'sourcesJar'

docker - Gradle 在 GitLab CI 上构建 : Could not create service of type ScriptPluginFactory

java - gradle:切换到实现/测试实现在访问配置时导致错误

android - 在Android上测试发行版应用,测试用的APK不是 `proguarded`

java - 如何修复gradle错误?

android - 从混淆的 classes.jar 中移除外部库(在 Android Studio/Gradle 中)

java - 将 spring 子项目打包到一个 jar 中

gradle - 如何在 Gradle 中指定最少的 Java 更新?

spring - 使用Gradle构建Spring时出现“文件名太长”错误