如何解决创建仅在更新依赖项时才构建的ant构建脚本
| 我几天前才刚开始与ant合作。现在,我有一个通用的buildall.xml,应该调用每个项目的build.xml。因为某些项目相互依赖,所以我需要重建一些其他依赖它的项目。这不是问题,我只是设置目标的Depends属性。但是,即使文件没有更改,ant也会始终建立依赖关系。 假设project1没有依赖项; project2取决于project1; project3取决于project1、2; project4取决于project1、2和3;等等。 我可以破解一个查看项目K的解决方案,并检查项目1 ..项目K是否使用uptodate
更新了文件。如果是这样,则运行目标。这很杂乱,似乎不必要。
什么是实现此目的的最干净的方法?
编辑:所以我决定只破解一堆目标\“ check_projectK \”,在该目标上对其所有源文件,其构建文件以及1 .. K-1项目的构建文件进行ѭ0检查。由于依赖关系,始终可以正确处理。但是,对于大型工作区,这仍然是大量的复制和粘贴。我将保持开放。
解决方法
简短的回答是,ANT无法做到,除非您有某种方法可以连接到版本控制系统并检查是否有任何更改(您使用的是源代码控制吗?)。 Ant不知道文件上次更改的时间,然后查看它是否与构建的文件匹配。它没有依赖项存储库的概念。 Ant的全部目的是构建它。
解决问题的方法不是蚂蚁,而是Maven。 Maven具有依赖项存储库。还有一个非常漂亮的Maven插件,专门用于Flex,称为FlexMojos。通过使用此功能,Maven可以知道什么是上次构建的时间,因为它已上传到存储库。然后,您的其他项目可以添加它的依赖项并下载所需的SWC。
最重要的是,它与Hudson,Bamboo和Teamcity之类的持续集成引擎完美地结合在一起,该引擎每次将文件提交到源控制系统时都会构建一个项目,然后自动更新所有相关项目!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。