如何将ECJ添加到Liferay portlet项目的Gradle ant.importBuild类路径?

如何将ECJ添加到Liferay portlet项目的Gradle ant.importBuild类路径?,liferay,gradle,Liferay,Gradle,我正试图围绕Liferay portlet Ant构建创建一个gradle构建。我正在使用Gradle进行依赖关系管理和管理其他非liferay部件。我需要给Gradle的Liferay Ant build打电话。我正在尝试使用Ant.importBuild导入Ant build.xml。在这个过程中,Gradle抛出一个异常,因为Ant构建查找不在类路径上的ECJ 例如,我查看了Liferay Gradle构建以及如何将ECJ添加到ant.importBuild类路径,如下所示(这仍然引发相同

我正试图围绕Liferay portlet Ant构建创建一个gradle构建。我正在使用Gradle进行依赖关系管理和管理其他非liferay部件。我需要给Gradle的Liferay Ant build打电话。我正在尝试使用Ant.importBuild导入Ant build.xml。在这个过程中,Gradle抛出一个异常,因为Ant构建查找不在类路径上的ECJ

例如,我查看了Liferay Gradle构建以及如何将ECJ添加到ant.importBuild类路径,如下所示(这仍然引发相同的异常)

有人能解决这个问题吗?我是格拉德尔的新手

apply plugin: 'java'
ant.importBuild 'build.xml' 
configurations { jdt }
dependencies { jdt "org.eclipse.jdt:ecj:3.6.1" }
compileJava {
       doFirst {
                 ClassLoader antClassLoader =org.apache.tools.ant.Project.class.classLoader
                 configurations.jdt.each { File f ->
                                          antClassLoader.addURL(f.toURI().toURL())
                                         }
               }
}

我找到了一个解决gradle和ECJ最初问题的方法,所以我将保留这个问题

解决方法调用系统ant。这显然是假定您已经安装了ant,并且正在您的路径上

def antExec(target){
  tasks.create(name: "ant$target", type: Exec) {
       executable 'ant'
       args  target
  }
  tasks."ant$target".execute()
}
从任务中调用它

antExec('deploy')
达米恩

要为liferay项目运行ant脚本,需要解析ecj依赖关系。 您可以在liferaytomcat/lib目录中找到ecj*.jar,复制该jar并将其放入ant home/lib(安装目录)


如果您使用的是您偏好的任何IDE,请将此jar添加到ant运行时以解决依赖关系。

您也可以从eclipse添加ECJ jar。@幸运的是,我不确定您的意思是什么?它通过gradle build运行ant build,该版本导入存在问题的ant build。被自己调用的ant构建可以工作
antExec('deploy')