Eclipse,ant和自定义任务

17

对不起,我在使用Ant方面经验不太丰富。

我喜欢eclipse的“导出ant构建文件”功能,但我需要插入一些自定义任务(复制文件,计算在运行时使用的校验和等)。

我如何将自定义ant任务与Eclipse导出的ant文件集成?完成后,内部构建(Run...)是否会识别它,还是我总是要使用外部ant文件来构建?

哦,我不想编辑从Eclipse导出的build.xml,因为我想稍后重新生成它。

编辑/更新:

我花了一段时间才弄清楚发生了什么--所以我想在这里放一些注释来澄清。

当您在目录中创建一个新的ant文件并在自定义的ant脚本的第一行上放置<?eclipse.ant.import ?>时(我的称为test.xml),下次您将Eclipse的构建文件导出到该目录中,它会看到该标记,并添加<import file="test.xml"/>

通过这个Import,在您导出的build.xml(或您导出时选择的任何名称)中,您“自定义”文件(test.xml)中的目标将变成有效目标。

此后,每次您在Eclipse中选择“build.xml”,目标窗格也将包括来自“test.xml”的目标。

此外,在此之后,您可以进入项目属性/构建器并添加一个新的类型为“Ant Build”的构建器,然后选择要用于构建、清理等的目标。


2
我已经在Eclipse 3.4.1上尝试过了,发现只有以build开头的自定义构建文件才会被包含。例如,build-custom.xml可以正确导入,但custom_build.xml则被忽略了... 也许这能帮到其他人... - Martin Klinke
和我一样,我正在Ubuntu上使用Eclipse 3.5.2,并且不得不将文件重命名为build-custom.xml而不是custom-build.xml。 - Marthinus
谢谢大家,现在这里也可以工作了。 - Bjoern
4个回答

13

ant导出过滤器将包括与其在同一目录中的具有特殊扩展名的任何xml文件

<?eclipse.ant.import?>

元素作为其第一个子元素。

示例:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse.ant.import?>
<project name="project" default="default" basedir=".">
    ...
</project>

Eclipse将在build.xml中包含以下行:

<import file="custom_build.xml"/>

Geocities 已经关闭,因此请在这里找到示例并在此处找到该网站。 - Derek Thurn
4
@Derek,所有的例子都不见了,请你再加上这些例子好吗? - Saba Ahang
@JesperE 应该给名称和默认值分配什么值?此外,我希望这个目标(比如targetA)依赖于主build.xml文件中定义的另一个目标(比如targetB),但是eclipse显示错误,说targetB在此项目中不存在。 - Bikash Gyawali

2
如果您编写自己的Ant脚本,可以编写自己的目标,使用Ant任务来委托生成的build.xml
此外,您可以配置项目的“构建器”(项目属性»构建器),在手动或自动构建项目时运行任何不同的东西。

1

PDE支持从生成的build.xml回调到您自己的自定义ant脚本。

从您的eclipse安装中的org.eclipse.pde.build复制文件“templates/plugins/customBuildCallbacks.xml”,并在您的build.properties文件中设置“customBuildCallbacks=true”。

另请参阅Eclipse帮助页面


0

您可以为这些任务拥有一个单独的Ant构建文件。这就是您所需要的全部。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接