Eclipse 中的 Ant 自动运行

本文探讨了Seam框架与Eclipse集成的过程,特别是通过seam-gen生成的代码如何自动触发Ant任务。通过分析.project和*.launch文件,揭示了auto、full、incremental触发事件的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间在学 Seam。Seam 有一个非常方便的代码生成工具 seam-gen。在将用 seam-gen 生成的代码导入 Eclipse 项目之后,我发现每当我保存对源码的修改之后,Eclipse 都会执行 Ant 任务。对于我这种小菜来说,这是非常令人吃惊的现象。

研究一番之后,发现其实这样很简单。要实现这样的目的无非需要两个文件:.project 和 *.launch 文件。.project 是 Eclipse 的必备文件,所以必定是位于项目的根目录中;*.launch 一般也位于根目录中。

在 seam-gen 生成的 .project 文件中有这么几行代码:

<buildCommand>
<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
<triggers>auto,full,incremental,</triggers>
<arguments>
<dictionary>
<key>LaunchConfigHandle</key>
<value><project>/explode.launch</value>
</dictionary>
</arguments>
</buildCommand>


这段代码的意思大致如下:当 anto、full、incremental 触发事件时,explode.launch 所定义的内容会被执行。incremental 应该是当文件增加的意思。auto 和 full 又是什么意思呢?

explode.launch 文件中的部分内容:

<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="clean,unexplode,restart,buildtest,"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS" value="clean,unexplode,restart,buildtest,"/>
<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="explode,buildtest,"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="seamdemo"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/seamdemo/build.xml"/>
</listAttribute>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/seamdemo/build.xml}"/>
</launchConfiguration>


当 auto、full、incremental 发生时,

<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="explode,buildtest,"/>

应该被执行了。explode 和 buildtest 都是 build.xml 中的相应任务。ATTR_ANT_AUTO_TARGETS 从字面上理解也是 Ant 自动任务的意思。

对这两个文件内容的理解就到这份上了。再深入时间恐怕不够,暂时也没有需求。
希望某位 Eclipse 大拿看到本人后可以给予更详细的解释。

问题:
[list=1]
[*]auto,full,incremental 的具体含义;
[*]关于 *.launch 文件的根元素 “launchConfiguration” 的解释;
[*]。。。。。。
[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值