使用Ivy进行多重伪影分辨率

时间:2017-07-23 13:31:37

标签: eclipse ant dependency-management artifactory ivy

我需要通过Ivy解析一个jcuda本地库,但是我找不到定义依赖关系的正确方法。

我使用Artifactory进行依赖管理,并正确识别并解析所有可用平台的各个本机库版本(参见屏幕截图):

Artifactory screenshot

然而,我坚持

的决议

Eclipse Ivy resolution error

Ivy产生的错误显示正确的解决方案路径。

1 个答案:

答案 0 :(得分:0)

我在这些库的原始Maven定义中找到了一个提示(在我的本地常春藤缓存%HOME%\.ivy2\cache\org.jcuda\jcuda-natives\windows-x86_64\ivy-0.8.0.xml.original中找到),它使用了以下分类器:

<classifier>${jcuda.os}-${jcuda.arch}</classifier>

在我的常春藤配置中,我不区分操作系统和体系结构,但使用链接分类器会给我windows-x86_64,这是我正在寻找的jar文件。

我需要将Maven名称空间(xmlns:maven="http://maven.apache.org")添加到ivy.xml

<?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" xmlns:maven="http://maven.apache.org">

然后以下依赖项可以使用maven:classifier来解析我正在寻找的特定本机库:

    <dependency org="org.jcuda" name="jcuda-natives" rev="0.8.0">
        <artifact maven:classifier="windows-x86_64" ext="jar" />
    </dependency>