【问题标题】:Ant: Is it possible to create a dynamic ant script?Ant:可以创建动态的ant脚本吗?
【发布时间】:2016-06-23 18:11:52
【问题描述】:

因此,在工作中,我经常需要创建几乎完全相同的 ant 脚本。基本上,我们向客户提供的应用程序设计为易于扩展,并且我们提供为其设计和创建自定义模块的服务。由于我们的应用程序很复杂,有很多交叉依赖,我倾向于在我们的核心开发环境中开发模块,使用 IntelliJ 编译它,然后运行一个基本的 ant 脚本来执行以下任务:

1) 清理构建目录

2) 根据包路径创建构建目录和目录层次结构。

3) 复制类文件(和源文件到单独的源目录)。

4) 把它盖起来。

问题是,要做到这一点,我需要逐行浏览脚本并更改一堆属性名称,因此它适用于新的用例。我还保存了所有脚本以备不时之需。

这不是世界上最糟糕的事情,但我一直在寻找更好的做事方式。因此我的想法是:

对于每个特定的实现,我都会提供一个仅包含属性的 ant 脚本(或其他文件)。键值对,根据其用途,每个键都有特定的前缀。然后,我希望我的 ant 脚本运行各种任务,为适当的键值对执行每一个任务。

例如,复制类文件。我会有一个名称类似于“classFile.filePath”的属性。我希望脚本为它检测到的每个以“classFile ...”开头的属性调用任务。

老实说,从我目前的研究来看,我不相信这是可能的。但是……我超级固执,总是在寻找新的创意选择。那么,我有哪些选择?还是没有?

【问题讨论】:

    标签: ant


    【解决方案1】:

    可以动态生成 ANT 脚本,例如以下使用 XML 输入文件执行此操作:

    就我个人而言,我总是会尽量避免这种复杂程度。 Ant 不是一种编程语言。

    看看您正在尝试实现的目标,您似乎可以从将依赖项打包为 jar 并使用 Maven 存储库管理器(如 Nexus 或 Artifactory)进行存储中受益。这将简化每个子项目的构建。在构建依赖于这些已发布库的项目时,您可以使用像 Apache ivy 这样的依赖管理工具来下载它们。

    希望对您的问题有所帮助。

    【讨论】:

    • 抱歉,这只是我在工作日中间的一个想法。使用 XSLT 链接答案的奖励积分,我实际上非常熟悉。
    猜你喜欢
    • 1970-01-01
    • 2014-05-30
    • 2012-04-30
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多