【发布时间】:2010-11-02 21:05:06
【问题描述】:
我正在尝试在我的 Eclipse 源代码上构建 Ant。最终目标是让 Eclipse 源代码作为输入,输出到一个完全在 Eclipse 文件结构之外的文件夹中。
自从我使用 Ant 已经有一段时间了,所以我逐渐注释掉,然后从命令行构建示例项目时生成的标准 build.xml 中取消注释。我将放入很多“回声”,以确保它在我让它真正做某事之前得到目录。我从 build.xml 顶部的一个简单的垃圾目标开始,它刚刚回显了“垃圾”——这工作正常。
然后我取消了注释:
<!-- Custom Android task to deal with the project target, and import the
proper rules.
This requires ant 1.6.0 or above. -->
<path id="android.antlibs">
<pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
<pathelement path="${sdk.dir}/tools/lib/sdklib.jar" />
<pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" />
</path>
<taskdef name="setup"
classname="com.android.ant.SetupTask"
classpathref="android.antlibs" />
<!-- Lots of commented out stuff -->
<setup />
一旦我让它运行,我的回声就会消失,我得到以下输出
[setup] Android SDK Tools Revision 7
[setup] Project Target: Google APIs
[setup] Vendor: Google Inc.
[setup] Platform Version: 2.1-update1
[setup] API level: 7
[setup]
[setup] ------------------
[setup] Resolving library dependencies:
[setup] ------------------
[setup] Ordered libraries:
[setup] ------------------
[setup]
我当然希望它会失败,因为我没有在 .properties 文件中设置任何输入/输出/lib 目录。我很想知道为什么当我只调用“垃圾”目标时 taskdef 本身会运行。我还想知道 anttasks.jar 中的 SetupTask 和所有其他人实际上做了什么,以及在哪里可以找到它们的一些文档。
【问题讨论】: