Ant是不是一种计算机语言。这是一种矩阵依赖语言。
区别很微妙:编程语言更加灵活,但您必须告诉它每一步和每一步。矩阵依赖语言计算出执行顺序。
它可能是一个微妙但重要的区别。在标准的Ant中,像while循环,for循环和if/then语句这样的基本控制结构缺失。
听起来你想用标准的计算机语言来做什么会容易得多。也许Python,Perl,甚至是一个shell脚本。
在命令行键入“ant -help”,你会发现没有真正的方法可以像使用常规编程语言一样将参数传递到Ant中。相反,你可以在命令行上性能蚂蚁就可以使用:
$ant -Ddeploy.classfile=src/classes/myClass.class deploy
的-D允许您设置一个属性调用部署任务时。然后,您可以使用deploy.classfile属性在您的目标中使用它在Ant 任务中。我会粗略估计,即使是这样一个简单的构建。xml文件需要大约20到30行。特别是你会给它一个类文件或一个目录,你必须以不同的方式处理它们,这需要第二个目标。不仅如此,而且很难理解工作流程。
这是一个想法,为什么不在<javac>
任务中使用destdir
目标,首先在deploy
目录中创建所需的*.class
文件。 Ant的主要做法之一是将您构建的文件从存储库中的文件中分离出来。它使清理变得非常容易。另外,<javac>
任务知道不要为尚未更改的源文件重建类文件。
<target name="compile"
description="Compile your source files">
<property name="main.destdir" value="${basedir}/deploy/classes"/>
<property name="main.srcdir" value="${basedir}/src"/>
<path id="main.classpath">
<fileset dir="${basedir}/lib/>
</path>
<javac srcdir="${main.srcdir}"
destdir="${main.destdir}"
classpathref="main.classpath"/>
</target>
现在,您不必将文件从源目录复制到您的部署目录。更好的是,<javac>
不会重新编译未更改的源文件。让Ant完成它所设计的任务,以及其他任何事情,使用一种好的脚本语言。