是否可以从Ant启动Gradle任务?

mwc*_*wcz 2 ant build-automation gradle

我正在研究Ant的替代品.我看过GantGradle.

是否可以从Ant启动Gradle任务?这可以在Gant中使用taskdef.

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

<gant />
Run Code Online (Sandbox Code Playgroud)

Gradle有类似的东西吗?我很想开始从Ant迁移到Gradle,但我们有一个大型的Ant基础架构,我创建的任何Gradle构建脚本都需要从Ant调用.

谢谢!

Jer*_*unn 6

为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>
Run Code Online (Sandbox Code Playgroud)

使用宏def的示例

<!-- Example, call grade with new macro -->
<target name="example">
    <gradle task="build" />
</target>
Run Code Online (Sandbox Code Playgroud)