【问题标题】:Android and Ant - specifically taskdef and anttasks.jarAndroid 和 Ant - 特别是 taskdef 和 anttasks.jar
【发布时间】: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 和所有其他人实际上做了什么,以及在哪里可以找到它们的一些文档。

【问题讨论】:

    标签: android ant


    【解决方案1】:

    在我的 build.xml 中,有一行,就在你的截止点下方

    <setup />
    

    如果你有这个,那就是你的罪魁祸首。

    【讨论】:

    • 是的,它在那里(编辑过的操作)。当我没有告诉它时,我仍然不明白为什么它会运行。
    • 但你确实告诉它运行。即使它在&lt;target&gt; 之外,它也被评估过,就像&lt;path&gt;&lt;taskdef&gt; 一样。
    • 好的,谢谢,我认为 taskdefs 总是运行。我还是想知道它在做什么。我会尝试找到 antasks.jar 的源代码
    【解决方案2】:

    任何包含在构建文件顶层(即任何目标之外)的任务都会自动包含在一个隐式初始化目标中,无论您指定什么实际目标,该目标都会在构建运行时运行。

    所以 setup 任务的 taskdef 元素声明了这个任务,但是下一行 &lt;setup /&gt;,因为它是构建文件的顶层,将导致每次运行 ant 时都会执行该任务这个构建文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多