我正在研究Ant的替代品。我看过甘特和格雷德。
有可能启动Ant的Gradle任务吗?这在带有taskdef的Gant中是可能的。
<taskdef
name = "gant"
classname = "org.codehaus.gant.ant.Gant"
classpathref = "classpath"
/>
<gant />
有类似的Gradle吗?我很想开始从Ant迁移到Gradle,但我们有一个大型的Ant基础设施,我创建的任何Gradle构建脚本都需要从Ant调用。
谢谢!
为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>
与其切换构建技术,为什么不使用ivy和groovy的组合来扩展现有ant构建的功能呢?
下面的帖子就是一个例子:
使用Ant Script 解析HTML
顺便说一句,我是Gradle的忠实粉丝,然而,和你一样,我必须与一个庞大的ANT遗产共存并支持它:-)
事实上,我想做同样的事情,在哪里通过调用sh文件来实现,然后sh调用gradle,但这太过分了,最后下面的代码让它很酷。。
希望这对你有帮助。。
<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>
Gradle不提供Ant任务来从Ant运行Gradle构建。您可以做的是从Ant中调用Gradle命令(如gradle build
)。
在Ant集成方面,Gradle提供了两个特性:导入Ant构建和重用Ant任务。
Gradle和Gant很不一样。Gradle是一个全新的构建系统;甘特是蚂蚁上面的一层薄层。