【问题标题】:IVY Error: can't find the ivy.xml fileIVY 错误:找不到 ivy.xml 文件
【发布时间】: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 文件是:

标签: ant ivy


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    1. 一个存储库(它描述了例如 log4j 工件)
    2. 一个项目(其中描述了您的项目并将 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编译

    【讨论】:

    • 您的回答帮助了我。谢谢!
    猜你喜欢
    • 2016-11-26
    • 2013-07-08
    • 2011-11-18
    • 2011-11-02
    • 2013-04-05
    • 1970-01-01
    • 2015-04-13
    • 2018-01-03
    • 2013-12-29
    相关资源
    最近更新 更多