我正在尝试运行以下构建任务(initIvy):
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我得到以下输出:
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目录中。
例如(适当更改版本号):
C:\Apps\Tools\apache-ant-1.9.7
C:\Users\UserName\Downloads\apache-ivy-2.4.0
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。