IVY 错误:找不到 ivy.xml 文件

Posted

技术标签:

【中文标题】IVY 错误:找不到 ivy.xml 文件【英文标题】:IVY Error: can't find the ivy.xml file 【发布时间】:2012-07-19 08:08:00 【问题描述】:

我有以下 ant 和 ivy 文件来设置我的项目。我想让 ivy 解析文件D:/workspace/lib/apache/log4j/1.2.16/ivy.xml 以检索 log4j.jar。

但 Ivy 会解析文件 D:/workspace/BuildStudy/ivy.xml。而且我没有D:/workspace/BuildStudy/ivy.xml file。有人知道我的 ant 和 ivy 设置文件有什么问题吗?谢谢。

build.xml 文件包含:

<project name="BuildStudy" default="main" xmlns:ivy="antlib:org.apache.ivy.ant">    
    <target name="resolve" description="--> retrieve dependencies with ivy">        
      <ivy:retrieve/>
    </target>
</project>

ivysetting.xml 文件包含:

<ivysettings>
    <properties file="D:/workspace/BuildStudy/ivysettings-file.properties" />
    <caches  defaultCacheDir="$cache.dir" />
    <property name="base.dir" value="D:/workspace/lib"/>
    <settings defaultResolver="CRMlocal"/>
    <resolvers>
        <filesystem name="CRMlocal">
            <ivy pattern="$base.dir/[organisation]/[module]/[revision]/ivy.xml"/>
            <artifact pattern="$base.dir/[organisation]/[module]/[revision]/[artifact].[ext]"/>
            <artifact pattern="$base.dir/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
        </filesystem>
    </resolvers>
</ivysettings>

ivysettings-file.properties 文件包含: cache.dir=D:/workspace/BuildStudy/.ivy_cache

【问题讨论】:

log4j.jar 在哪里?在 D:/workspace/lib/apache/log4j/1.2.16/?所以 D:/workspace/lib/ 是您的存储库。要从存储库中检索某些内容,您的项目需要另一个 ivy.xml。 我在 D:/workspace/lib/apache/log4j/1.2.16/ 中有 log4j.jar 及其 ivy.xml 文件。你的意思是我应该在 D:/workspace/lib/ 中有一个 ivy.xml 文件吗? ivy.xml 文件是: 【参考方案1】:

将以下属性添加到您的 build.xml:

   <property name="ivy.dep.file" value="PATH TO ivy.xml" />

【讨论】:

【参考方案2】:

ivy.xml 文件描述工件及其依赖项。

常春藤文件通常在两个位置使用/存在:

    一个存储库(它描述了例如 log4j 工件) 一个项目(其中描述了您的项目并将 ivy.xml 列为依赖项)

您已经迈出了第一步并创建了一个本地存储库,您使用文件系统解析器resolve。

现在您需要为您的项目声明一个 ivy.xml,例如:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation=
                   "http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="myorg" module="BuildStudy"/>
<configurations>
    <conf name="compile" visibility="public" />
</configurations>
<publications>
   <artifact name="BuildStudy" type="jar"  conf="compile" ext="jar"/>
</publications>
<dependencies>>
    <dependency org="log4j" name="log4j" rev="1.2.14" conf="compile->*"/>
</ivy-module> 

这将使用以下详细信息描述您的项目:

此项目将构建并提供工件 BuildStudy.jar 本项目需要log4j编译

【讨论】:

您的回答帮助了我。谢谢!

以上是关于IVY 错误:找不到 ivy.xml 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何修复在番石榴错误中找不到的配置

如何在 ivy.xml 中包含文件?

有人可以解释 ivy.xml 依赖项的 conf 属性吗?

Jenkins Ivy 插件:寻找错误的 ivy.xml 文件

错误:找不到管道“异步”! AOT & IVY 更新后

Ant、Ivy 和 JUnit 找不到类 - build.xml 中的错误?