【问题标题】:What default targets do you have in your typical ant buildfile?您在典型的 ant 构建文件中有哪些默认目标?
【发布时间】:2010-04-06 20:57:24
【问题描述】:
您是否有一些预定义的目标集,您创建的所有build.xml 文件都包含这些目标?
例如,很多 ant 手册都建议使用以下目标列表:
- 初始化
- 干净
- 编译
- 构建
- 罐子
- 测试
- javadoc
- 分布
- 部署
- 网络应用
您一生中遇到的最大的构建文件是什么?它有多少目标,它们是什么?您多久需要超过预定义的一组目标?
我们的目标是开发一些约定,以便为任何考虑到类似 maven 方法概念的项目提供标准的构建文件模板(当大量工作在后台发生时,约定优于配置)。如果您知道可以找到不同构建文件的集合以供选择或从中获得灵感的地方,那就太好了。
【问题讨论】:
标签:
ant
build-process
build
version-control
【解决方案1】:
我也在所有 ant 文件中使用这些目标
构建目标始终创建工件,无论是 jar 还是 war 或其他任何东西。
您还应该在约定中包含结构性内容,例如所有库的共享存储库(由某些 VCS 进行版本控制)。
另一件事是为您的 jar 版本定义属性,例如:
lib.commons-collections=commons-collections-2.1.jar
lib.commons-io=commons-io-1.4.jar
在所有 ant 文件中都会引用,common.jar 是放置工件的地方,以防其他项目依赖它们。
<path id="local-cp">
<pathelement path="${dir.common.jar}/${lib.shared}" />
<pathelement path="${dir.lib}/${lib.commons-logging}" />
<pathelement path="${dir.lib}/${lib.commons-io}" />
...
对于部署,我使用另一组 ant 文件 deploy_component-name.xml
在使用 ant 多年后,我建议限制目标的数量,有时您可能需要多一些步骤来生成代码等。
要了解其他人如何处理更大的项目,您可以下载应用程序服务器的源代码分发来检查他们是如何完成这项工作的。