类路径中使用ANTBuilder从摇篮当蚂蚁插件(Classpath for ant plugins

2019-07-29 02:00发布

我有一个build.gradle它加载文件PMD (从上游的Maven下载的话),然后加载需要PMD一个Ant build.xml文件:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'pmd:pmd:4.2.5'
  }
}
ant.importBuild 'shared-build.xml'

然而,蚂蚁导入失败:

taskdef class net.sourceforge.pmd.ant.PMDTask cannot be found
using the classloader AntClassLoader[]
  at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:551)
[...]
  at org.gradle.api.internal.project.DefaultAntBuilder.importBuild(DefaultAntBuilder.groovy:76)

如何摇篮的蚂蚁集成被指示,使这个可用?

Answer 1:

有没有简单明了的方式来做到这一点,因为摇篮不提供这方面的任何API的支持。 所以,你需要破解它的一些方式。

例如,你可以做这样的事情,正确的调用ant.importBuild前

org.apache.tools.ant.Project.class.classLoader.addURL( file('libs/somelib.jar').toURI().toURL() )

另外,您可以拨打伴你走过摇篮的依赖分辨率得到了路径的addURL()方法(同样,这应该调用ant.importBuild之前执行)。

configurations { someconf }
dependencies { someconf "org.eclipse.jdt:ecj:3.6.1" }

def antClassLoader = org.apache.tools.ant.Project.class.classLoader
configurations.someconf.each { File f ->
    antClassLoader.addURL(f.toURI().toURL())
}

当然,另一个解决办法是让你的build.xml文件中定义的类路径,所以你就不必从摇篮做任何事情。

看到这里一些输入http://gradle.1045684.n5.nabble.com/How-to-add-to-classpath-for-ant-importBuild-td3268631.html



文章来源: Classpath for ant plugins when using ANTBuilder from Gradle
标签: ant gradle