每次创建新项目时,我都会将上一个项目的 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),并且仍然能够使用命令行构建来实现自动化。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top