题
每次创建新项目时,我都会将上一个项目的 ant 文件复制到新项目并进行适当的更改(同时尝试使其对于下一个项目更加灵活)。但由于我一开始并没有真正考虑过它,所以该文件开始看起来非常难看。
您是否有可以轻松移植到新项目中的 Ant 模板?有什么制作技巧/网站吗?
谢谢。
解决方案
制作模板的另一种方法是通过逐渐通用当前项目的 Ant 脚本来改进模板,以便下次复制该模板以在新项目中使用时进行更少的更改。您可以做几件事。
在文件名中使用 ${ant.project.name},因此您只需在项目元素中提及您的应用程序名称。例如,如果您生成 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 属性一旦设置就无法更改,因此您可以通过定义新值来覆盖某个值 前 默认值。
其他提示
你可以给 http://import-ant.sourceforge.net/ 尝试一下。它是一组构建文件片段,可用于创建简单的自定义构建文件。
我遇到了同样的问题,并概括了我的模板并将它们发展到自己的项目中: 反板. 。也许它对你也有用。
如果您正在处理多个具有相似目录结构的项目,并且想要坚持使用 Ant 而不是 Maven,请使用 导入任务. 。它允许您让项目构建文件只需导入模板并定义任何变量(类路径、依赖项...)并拥有所有 真实的 在导入的模板中构建脚本。它甚至允许覆盖模板中的任务,从而允许您放入项目特定的前或后目标挂钩。
我曾经做过完全相同的事情......然后我切换到 行家. 。Maven 依靠一个简单的 xml 文件来配置您的构建,并依靠一个简单的存储库来管理您的构建的依赖项(而不是使用代码将这些依赖项检查到源代码控制系统中)。
我真正喜欢的一项功能是对 jar 进行版本控制是多么容易 - 轻松地为库的旧用户保留以前的版本。当您想要升级您使用的库(例如 junit)时,这也对您有利。这些依赖项作为单独的文件(及其版本信息)存储在您的 Maven 存储库中,因此旧版本的代码始终具有可用的特定依赖项。
这是一只更好的蚂蚁。
我曾经做过完全相同的事情......然后我切换到maven。
哦,这是 Maven 2。我担心现在有人还在认真使用 Maven。抛开笑话不谈:如果您决定切换到 Maven 2,那么在查找信息时必须小心,因为 Maven 2 是 Maven 的完全重新实现,只是更改了一些基本的设计决策。不幸的是,他们没有更改名称,这在过去一直是造成混乱的一个重要原因(考虑到网络的“记忆”性质,有时仍然如此)。
如果你想保持 Ant 精神,你可以做的另一件事是使用 常春藤 管理您的依赖项。
需要注意一件事——如果您使用 Eclipse,请查看 ant4eclipse 任务。我使用一个构建脚本,要求提供 Eclipse 中设置的详细信息(源目录、构建路径(包括依赖项项目)、构建顺序等)。
这允许您在一处管理依赖项(Eclipse),并且仍然能够使用命令行构建来实现自动化。