当前位置: 首页 > 面试题库 >

蚂蚁目标失败:Antlib或Ivy问题?

拓拔弘化
2023-03-14
问题内容

我正在尝试运行以下构建任务(initIvy):

<?xml version="1.0" encoding="UTF-8"?>
<project name="myproject-build" default="package" basedir=".." xmlns:ivy="antlib:org.apache.ivy.ant">
    <property file="build/build.properties"/>
    <property environment="env"/>

    <!-- Ant library path, including all of its plugins. -->
    <path id="ant.lib.path">
        <fileset dir="${env.ANT_HOME}/lib" includes="*.jar"/>
    </path>

    <!-- CONFIGURE IVY -->
        <taskdef resource="org/apache/ivy/ant/antlib.xml"
            uri="antlib:org.apache.ivy.ant" classpathref="ant.lib.path"/>

    <!-- Use Ivy tasks to resolve dependencies into the local Ivy cache. -->
    <target name="initIvy">
        <!-- Initialize Ivy and connect to host repository. -->
        <echo message="Initializing Apache Ivy and connecting to the host repository."/>
        <ivy:settings url="${ivy.std.repo.settings.url}" realm="${ivy.std.repo.realm}" username="${ivy.std.repo.username}" passwd="${ivy.std.repo.password}"/>

        <!-- Clear/flush the Ivy cache. -->
        <echo message="Cleaning the local Ivy cache for the current build."/>
        <ivy:cleancache/>
    </target>

    <!-- Rest of buildfile omitted for brevity. -->

</project>

运行时,ant -buildfile build.xml initIvy我得到以下输出:

Buildfile: /<path-to-my-project>/build/build.xml
    [taskdef] Could not load definitions from resource org/apache/ivy/ant/antlib.xml. It could not be found.

initIvy:
    [echo] Initializing Apache Ivy and connecting to the host repository.

BUILD FAILED
/<path-to-my-project>/build/build.xml:81: Problem: failed to create task or type antlib:org.apache.ivy.ant:settings
    Cause: The name is undefined.
    Action: Check the spelling.
    Action: Check that any custom tasks/types have been declared.
    Action: Check that any <presetdef>/<macrodef> declarations have taken place.
    No types or tasks have been defined in this namespace yet

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
    -/<path-to-my-ANT_HOME>/lib
    -/home/myUser/.ant/lib
    -a directory added on the command line with the -lib argument

当我转到$ {ANT_HOME} / lib时,看不到任何标有“ antlib * .jar”的JAR。

所以我 我下载了一个不包含Antlib的Ant版本,而现在我使用的是Ivy(使用Antlib),该版本是否令人窒息?

如果这是Antlib的问题,那么我相信我想在这里找到其中一个发行版。如果是这样,有人可以确认我应该使用哪一个(仅包含Antlib而不包含其他任何内容),并确认安装过程;即,将正确的JAR放入$
{ANT_HOME} / lib中是否一样简单?等等。

如果这是一个常春藤问题,那么有人可以为我指出正确的方向吗?

如果这既不是Antlib也不是常春藤,请直接回答上面的问题。提前致谢!


问题答案:

我认为您可能会缺少Apache IVY库。从这里下载它-apache
ivy
将jar复制到您的ant lib目录中。

例如(适当更改版本号):

  1. 下载并安装Ant(例如C:\Apps\Tools\apache-ant-1.9.7)。
  2. 下载并解压缩Ivy(例如C:\Users\UserName\Downloads\apache-ivy-2.4.0
  3. 复制C:\Users\UserName\Downloads\apache-ivy-2.4.0\ivy-2.4.0.jar到中C:\Apps\Tools\apache-ant-1.9.7\lib

Ant被配置为使用Ivy。



 类似资料:
  • 问题内容: 我正在尝试使用ant在命令行上生成apk。我可以使用ant clean,但是对于ant调试和ant release命令,我得到以下错误。 建立失败 C:\ Android \ sdk \ tools \ ant \ build.xml:649:执行此行时发生以下错误:C:\ Android \ sdk \ tools \ ant \ build.xml:694:执行失败:java.io

  • 这里我得到,因为不作为目标存在,这是意料之中的。但是有没有什么可以忽略或跳过未知的目标呢?或者将未知目标映射到已知目标(这对我来说是不可行的)? 但是对于旧的分支,还不存在。到目前为止,我们的解决方案是将添加为的依赖项(因为我们的build.xml受版本控制),但这意味着我们不能单独运行。 事后看来,我们应该创建一个代理目标,比如(我们已经对单元测试使用),它将委托给这两个目标。但是,除非对我最初

  • 更新:请参阅此处的分辨率。 谢谢大家的帮助! 我在尝试用Ant编译项目时遇到了一个错误,它声称“[javac]javac:invalid target release:7”,并导致构建失败。 我正在Mac OSX Mavericks机器上运行javac版本1.7.040。Ant版本:Apache Ant(TM)1.8.3版,2012年2月26日编译 只有在尝试使用Ant编译时,才会出现问题。在命令

  • 问题内容: 蚂蚁建造中的问题 蚂蚁源和目标1.6到jdk 1.6的可变路径 问题答案: 您使用的编译器无法进行编译(javac:无效的目标版本:1.6)。您确定使用JDK 1.6吗?也许ant已安装并使用了JDK 1.5。通过在目标中添加以下行来检查使用的Java版本: 它输出Ant使用的Java版本。 您可以将编译器设置为使用其他Java版本。您必须使用fork属性来使用外部javac并指定要使

  • 各位, 在Ant(Jenkins)中构建我们的Android应用程序时,我们遇到了一个属性范围问题。这打破了我们的emma单元测试覆盖率。 我们使用全局构建。xml文件,包含以下行: 如您所见,它在单个项目中启动目标。我们使用构建。 在构建过程中,我打印emma的值。已启用,由emma目标设置为true。然而,当Ant达到调试目标时,emma。已启用的不再设置。这导致我们的测试在没有启用emma覆

  • 问题内容: 在定义顺序构建步骤时,我使用元素的属性。我最近看到了一个ant文件,其中的构建顺序是由目标内部的元素定义的。为了显示 : 与 两种方法之间是否有真正的区别?是其中之一更可取吗? 问题答案: 与这两种方法的主要区别在于目标是 始终 执行,而在目标只有在包含目标是执行。 一个澄清的例子: 在这里,将始终执行,而只有在定义时才会执行。 在此,仅当is即定义时才执行。