Ant目标失败:Antlib还是常春藤问题?
可能重复:
Ivy fails to resolve a dependancy, unable to find causeAnt目标失败:Antlib还是常春藤问题?
我试图运行下面的生成任务(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的版本,现在我正在使用常春藤(使用Antlib),构建是窒息?
如果这是一个Antlib问题,那么我相信我想要一个可用的发行版here。如果是这样,有人可以确认我应该使用哪一个(只包含Antlib而不包含其他任何东西),并确认安装它的过程;即,将正确的JAR放入$ {ANT_HOME}/lib中一样简单?等
如果这是一个常春藤问题,那么有人可以指出我在正确的方向,可能会发生什么?
如果这既不是Antlib也不是常春藤,那么直接上面的问题同样如此。提前致谢!
回答:
我想你可能会缺少Apache IVY库。从此处下载 - apache ivy将jar复制到您的ant lib目录中。
例如(变化的版本号为适当):
- 下载并安装Ant(例如,
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。
以上是 Ant目标失败:Antlib还是常春藤问题? 的全部内容, 来源链接: utcz.com/qa/263693.html