对于那些在多个项目中使用Ant的人,你在哪里放置build.xml文件?您是在每个项目中放置一个,还是将它们放在包含所有Ant相关文件的单独项目中?
通常的建议是在每个项目中放置一个build.xml。但这有一些缺点:
这使得在多个项目中重用常见目标变得困难。
有时您希望使用Ant从源代码管理中导出项目并进行部署。如果构建文件在项目本身中,显然你不能这样做。
但如果你把它们放在一个共同的位置:
人们需要知道他们使用它们的位置;他们不能只使用“ant -find”来查找当前项目的文件。
您不能为项目的不同分支提供不同的构建说明。
你们做什么?
编辑:感谢您提出的好建议。至于Maven,这些都不是Java项目,我觉得Maven只适用于Java。
答案 0 :(得分:5)
将Ant文件与项目一起放置。这是事实上的标准,由Ant的创建者推荐。我将尝试解决您提出的一些问题:
应使用Eric Hatcher在他的书Java Development with Ant中描述的技术重复使用共同目标。基本上,您将所有通用性提取到所有其他Ant文件“继承”的顶级文件中。
使用Ant从源代码管理中导出项目对我来说似乎很奇怪,但是如果你想这样做,请使用不同的Ant文件:-)你可以创建一个像ant export -Dproject=foo/bar
这样的目标。
对于Ant,我建议你抓住那本书 - 它有很多有用的技巧。
我要做的真正建议是删除Ant并转换为Maven - 就像Apache Software Foundation一样(他们同时维护Ant和Maven)。
答案 1 :(得分:2)
如果您正在使用独立项目,您可以:
编辑使用svn:externals的技巧是,如果你链接到一些常见文件的HEAD,可能会发生在几个月/几年后它们会发生变化。因此,每次标记时,都应更改svn:externals以指向所包含项目的修复版本。当项目最后一次建成多年后必须重建时,这可能会很方便。
答案 2 :(得分:1)
我的经验法则是将build.xml文件放在引用所有文件的目录中。换句话说,没有相对路径应以“../”开头。我住的地方,通常意味着将它放在“trunk”目录下,该目录下面有src,lib,build,docs等。
这样做可以使文件中的路径更加清晰,并且很明显如何构建项目。
如果我有多个需要构建的项目,我将为每个项目创建一个单独的build.xml,并且所有项目所在目录中的中央build.xml将调用其他build.xml文件。只需很少的工作就可以为您提供很大的灵活性。
答案 3 :(得分:1)
答案 4 :(得分:0)
我这样做的方式是过去(现在我只是使用Maven):
看起来你的项目集合可能是迁移到Maven的一个很好的候选者,我意识到它并不总是可行,但如果你有时间,你可能想要调查它。