为啥 Ivy 无法解析我的配置

Posted

技术标签:

【中文标题】为啥 Ivy 无法解析我的配置【英文标题】:Why can't Ivy resolve my configurations为什么 Ivy 无法解析我的配置 【发布时间】:2014-09-16 03:17:06 【问题描述】:

我有一个 Ivy 和 Artifactory 设置来发布和依赖构建。

在 Artifactory 中,我有一个 Ivy 文件,内容如下:

<?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="org" module="module" branch="HEAD" revision="0.277-SNAPSHOT" status="integration" publication="20140724114055">
</info>

<configurations>
    <conf name="compile" visibility="public" description="Default required to compile the full module"/>
    <conf name="build" visibility="public" extends="compile" description="Incorporates additional build tools onto the classpath"/>
</configurations>

<publications defaultconf="compile">
    <artifact name="module" type="jar" ext="jar"/>
    <artifact name="module-src" type="source" ext="zip"/>
    <artifact name="module-doc" type="doc" ext="zip"/>
</publications>

<dependencies>
    <dependency org="junit" name="junit" rev="4.8.1" conf="compile->*"/>
    <dependency org="net.sf.proguard" name="proguard" rev="4.11" conf="build">
        <artifact name="proguard" ext="jar"/>
    </dependency>
</dependencies>
</ivy-module>

当我在另一个项目中依赖这个模块时,我指定了编译配置,但 IvyDE 告诉我编译不存在。

<?xml version="1.0" encoding="ISO-8859-1"?>
<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="org"
    module="module2"
    status="integration">
</info>

<configurations>
    <conf name="compile" description="Default required to compile the full module" />
</configurations>

<dependencies>
    <dependency transitive="true" org="org" name="module" rev="latest.integration" conf="compile">
        <artifact name="module" type="jar" ext="jar" />
        <artifact name="module-src" type="source" ext="zip" />
        <artifact name="module-doc" type="doc" ext="zip" />
    </dependency>
</dependencies>
</ivy-module>

通过此设置,我收到错误消息

"在 org#module 中找不到配置;0.277-SNAPSHOT: 'compile'"

如果将依赖项 conf 更新为 compile->*​​,我确实会获得 jar,但除非将它们明确定义为依赖项,否则我不会下载源代码或 javadoc。我还期望 junit 会出现在构建路径上,因为它被定义为编译依赖项,但是没有迹象表明它会出现,而我猜它不知道编译配置是什么。

请给点建议!

【问题讨论】:

【参考方案1】:

这似乎是因为 Ivy 没有正确找到 artifactory 中的 ivy。使用 URL 解析器而不是 ibiblio 解析器并定义常春藤模式一切正常。

【讨论】:

以上是关于为啥 Ivy 无法解析我的配置的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Ansible 无法解析我的 azure 动态库存配置文件?

sbt/ivy 无法解析通配符 ivy 对文件系统解析器的依赖

ivy 无法解析 org.springframework 依赖项

Apache IVY 无法解析 MAVEN 项目的依赖关系

Gradle 搜索 Ivy 服务但未定义 Ivy 配置/存储库

为啥 Flutter 构建失败并出现错误无法解析配置“:app:debugRuntimeClasspath”的所有文件