2017-07-23 7 views
0

J'ai besoin de résoudre une bibliothèque native jcuda via Ivy, mais j'ai du mal à trouver la bonne façon de définir la dépendance.Résolution d'artefacts multiples avec Ivy

J'utilise Artifactory pour ma gestion de la dépendance, et correctement identifiés et résolus les versions des bibliothèques natives individuelles pour tous disponibles plaforms (voir capture d'écran):

Artifactory screenshot

Cependant, je suis coincé au résolution du

Eclipse Ivy resolution error

l'erreur produite par Ivy montre le chemin de résolution approprié.

Répondre

0

J'ai trouvé un indice dans la définition Maven originale pour ces bibliothèques (dans mon cache local Ivy, %HOME%\.ivy2\cache\org.jcuda\jcuda-natives\windows-x86_64\ivy-0.8.0.xml.original), qui a utilisé le classificateur suivant:

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

Dans mes configurations Ivy, je ne » t distinguer OS et architecture, mais en utilisant le classifieur catenated me donne windows-x86_64, qui est le fichier jar que je cherche.

je besoin d'ajouter l'espace de noms 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"> 

Et puis la dépendance suivante peut utiliser maven:classifier pour résoudre la bibliothèque native spécifique Je cherche:

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