2012-03-07 38 views
1

我正在研究Ant的替代品。我看過GantGradle是否可以從Ant啓動Gradle任務?

是否有可能從Ant啓動Gradle任務?在Gant中可以使用taskdef。

<taskdef 
    name   = "gant" 
    classname = "org.codehaus.gant.ant.Gant" 
    classpathref = "classpath" 
    /> 

<gant /> 

有沒有類似的Gradle?我急於開始從Ant遷移到Gradle,但我們有一個大型的Ant基礎架構,我創建的任何Gradle構建腳本都需要從Ant中調用。

謝謝!

回答

2

Gradle不提供Ant任務來從Ant運行Gradle構建。你可以做的是從Ant調用一個Gradle命令(如gradle build)。

在Ant集成方面,Gradle提供了兩個特性:導入Ant構建和重用Ant任務。

Gradle與Gant有很大不同。 Gradle是一個全新的構建系統;甘特是螞蟻上面的一個薄層。

+0

這太糟糕的例子,但感謝你的信息。 Gant是完美的,但它不允許創建動態的任務/目標(gantfile格式排除它)。所以我轉向了Gradle,它具有比我需要的更多功能,但確實支持動態任務,但不能從Ant調用。好吧。 :) – mwcz 2012-03-07 21:41:51

2

除了切換構建技術之外,爲什麼不使用ivygroovy的組合來擴展現有的ant構建的功能呢?

一個例子是下面的帖子:

Parse HTML using with an Ant Script

順便說一句,我搖籃的大風扇,但是,像你我要住在一起,並支持大量ANT遺留:-)

+1

+1 ...太多的人生活在一起,支持一個大的ANT遺產。通過腳本擴展提供中間路徑.. – Jayan 2012-03-08 06:30:54

1

其實我想做同樣的事情,並通過調用sh文件實現,然後sh調用gradle,但它周圍布什太多,最後下面的代碼使其工作很酷..

希望這將是l幫你..

<property environment="env" /> 
<property name="gradle.wrapper.executable" location="${env.GRADLE_HOME}/bin/gradle" /> 
<target name="dependencies-report" description="Creates a text file report of the depdency tree"> 
<exec executable="${gradle.wrapper.executable}" dir="."> 
    <arg value="dependencyReport" /> 
</exec> 
</target> 
3

爲gradle創建一個macrodef,就像其他任務一樣調用它。下面是安裝和實例...

<!-- Gradle path stuff --> 
<property environment="env" /> 
<condition property="gradle.executable" value="${env.GRADLE_HOME}/bin/gradle.bat" else="${env.GRADLE_HOME}/bin/gradle"> 
    <os family="windows" /> 
</condition> 

<!-- Macro def, gives us an ant 'gradle' task--> 
<macrodef name="gradle"> 
    <attribute name="task" /> 
    <sequential> 
     <exec executable="${gradle.executable}" dir="." failonerror="true"> 
      <arg value="@{task}" /> 
     </exec> 
    </sequential> 
</macrodef> 

使用微距高清

<!-- Example, call grade with new macro --> 
<target name="example"> 
    <gradle task="build" /> 
</target> 
相關問題