2013-10-17 96 views
2

我想創建一個圍繞Liferay portlet Ant Build的gradle構建。我正在使用Gradle進行依賴管理和管理其他非liferay部分。我需要從Gradle調用一些Liferay Ant構建。我正在嘗試使用ant.importBuild導入Ant build.xml。在此過程中,由於Ant構建查找不在類路徑中的ECJ,Gradle會引發異常。如何添加ECJ到Liferay portlet項目的Gradle ant.importBuild類路徑?

我已經找過Liferay Gradle build的例子,以及如何將ECJ添加到下面顯示的ant.importBuild類路徑中(這仍會引發相同的異常)。

Task cannot continue because ECJ is not installed. 
ECJ was automatically installed. Please rerun your task. 
at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:568) 
at org.apache.tools.ant.taskdefs.ImportTask.importResource(ImportTask.java:239) 

有沒有人有解決方案?我對gradle很陌生。

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()) 
             } 
       } 
} 
+0

你也可以從eclipse中添加ECJ jar。 –

+0

@LuckyBoy我不確定你的意思? – Damien

回答

2

我發現了一個解決方案,它不能解決gradle和ECJ的原始問題,所以我會留下問題。

解決方法調用系統的螞蟻。這顯然假定你已經安裝了ant並且在你的路徑上。

def antExec(target){ 
    tasks.create(name: "ant$target", type: Exec) { 
     executable 'ant' 
     args target 
    } 
    tasks."ant$target".execute() 
} 

並將其從任務

antExec('deploy') 
0

達打電話,

要爲您需要解決ECJ依賴Liferay的項目運行Ant腳本。 你可以找到ECJ的* .jar在Liferay中-tomcat的/ lib目錄複製罐子,如果使用的是從自己的喜好任意添加IDE這瓶放置在螞蟻的家/ lib目錄(安裝目錄)
OR

到您的螞蟻運行時解決依賴。

+0

它通過gradle構建運行ant構建,該構建導入了存在問題的Ant構建。自己調用的螞蟻構建工作 – Damien

相關問題