我需要通过Ivy解析一个jcuda本地库,但是我找不到定义依赖关系的正确方法。
我使用Artifactory进行依赖管理,并正确识别并解析所有可用平台的各个本机库版本(参见屏幕截图):
然而,我坚持
的决议Ivy产生的错误显示正确的解决方案路径。
答案 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>