我几天前刚刚开始使用ant。现在我有一个通用的buildall.xml,它应该调用每个项目的build.xml。因为有些项目相互依赖,所以我需要重建一些依赖它的项目。这不是问题 - 我只是设置目标的depends属性。但是,即使文件没有更改,ant也始终构建依赖项。
假设project1没有依赖关系; project2依赖于project1; project3取决于project1,2; project4取决于project1,2和3;等等。
我可以破解查看项目K的解决方案,并检查项目1 ..项目K是否使用uptodate
更新了文件。如果是,则运行目标。这很麻烦,看起来没必要。
实施此最简洁的方法是什么?
编辑:所以我决定只攻击一堆目标,“check_projectK”,它对所有源文件,构建文件和1的构建文件进行uptodate
检查。 K-1项目。由于依赖性,始终正确处理。但是,对于大型工作区,这仍然是大量的复制和粘贴。我会把它打开。
答案 0 :(得分:1)
简短回答,ANT不能这样做,除非你有某种方式连接你的版本控制系统并检查是否有任何改变(你正在使用源代码控制权?)。 Ant不知道文件最后一次更改的时间,然后查看它是否与构建的内容匹配;它没有依赖库的概念。 Ant的整个目的是只是构建。
你的问题的解决方案不是Ant,它是Maven。 Maven有一个依赖库。还有一个非常漂亮的Maven插件,专门用于Flex,称为FlexMojos。通过使用它,Maven可以知道什么时候上次构建,因为它已上传到存储库。然后你的其他项目可以添加它的依赖项并下载所需的SWC。
最重要的是,它与Hudson,Bamboo和Teamcity等持续集成引擎相结合,每次将文件提交到源控制系统时都会构建项目,然后自动更新所有相关项目!