最佳Apache Ant模板
每次创建新项目时,我都会将上一个项目的ant文件复制到新文件中,并进行适当的更改(同时尝试使其对下一个项目更加灵活)。但是由于一开始我并没有真正考虑过它,所以文件看起来真的很丑。
我们是否具有可以轻松移植到新项目中的Ant模板?有任何技巧/网站可以制作一个吗?
谢谢你。
解决方案
回答
我曾经做过完全相同的事情....然后我切换到了Maven。 Maven依靠一个简单的xml文件来配置构建,并依靠一个简单的存储库来管理构建的依赖关系(而不是使用代码将这些依赖关系检查到源代码控制系统中)。
我真正喜欢的一个功能是轻松地对jar进行版本控制,从而使旧版本可用于库的旧用户。当我们要升级使用的库(例如junit)时,这也对我们有利。这些依赖项作为单独的文件(及其版本信息)存储在maven存储库中,因此旧版本的代码始终具有可用的特定依赖项。
这是更好的蚂蚁。
回答
制作模板的另一种方法是通过逐步概括当前项目的Ant脚本来发展模板,以便下次进行复制以将其用于新项目时所做的更改更少。我们可以做几件事。
在文件名中使用$ {ant.project.name},因此我们仅需在project元素中提及应用程序名称。例如,如果生成myapp.jar:
<project name="myapp"> ... <target name="jar"> ... <jar jarfile="${ant.project.name}.jar" ...
结构化源目录结构,以便我们可以通过复制整个目录而不是命名单个文件来打包构建。例如,如果要将JAR文件复制到Web应用程序档案中,请执行以下操作:
<copy todir="${war}/WEB-INF/lib" flatten="true"> <fileset dir="lib" includes="**/*.jar"> </copy>
将属性文件用于特定于计算机和特定于项目的构建文件属性。
<!-- Machine-specific property over-rides --> <property file="/etc/ant/build.properties" /> <!-- Project-specific property over-rides --> <property file="build.properties" /> <!-- Default property values, used if not specified in properties files --> <property name="jboss.home" value="/usr/share/jboss" /> ...
请注意,一旦设置,就无法更改Ant属性,因此我们可以通过在默认值之前定义一个新值来覆盖该值。
回答
I used to do exactly the same thing.... then I switched to maven.
哦,是Maven2. 我担心现在有人仍然在认真地使用Maven。开个玩笑:如果我们决定切换到Maven 2,则在寻找信息时必须小心,因为Maven 2是对Maven的完全重新实现,但更改了一些基本的设计决策。不幸的是,他们没有更改名称,这在过去一直是造成混乱的重要原因(鉴于网络的"内存"性质,有时仍是)。
如果我们想保持Ant精神,可以做的另一件事是使用Ivy来管理依赖项。
回答
如果我们正在处理多个具有类似目录结构的项目,并且希望坚持使用Ant而不是使用Maven,请使用Import任务。它使我们可以使项目构建文件仅导入模板并定义任何变量(类路径,依赖项等),并在导入的模板中关闭所有实际的构建脚本。它甚至允许覆盖模板中的任务,从而允许我们放入项目特定的目标或者目标挂钩。
回答
要看的一件事-如果我们使用的是Eclipse,请查看ant4eclipse任务。我使用单个构建脚本,询问在eclipse中设置的详细信息(源目录,包括依赖项项目的构建路径,构建顺序等)。
这样一来,我们可以在一个地方(日食)管理依赖项,并且仍然可以使用命令行构建来实现自动化。
回答
我遇到了同样的问题,将模板通用化,然后将其扩展到自己的项目中:Antiplate。也许对我们也有用。
回答
我们可以尝试http://import-ant.sourceforge.net/。
它是一组构建文件片段,可用于创建简单的自定义构建文件。