2017-07-23 2 views
0

Ich muss eine jcuda native Bibliothek über Ivy auflösen, aber ich habe einige Probleme bei der Suche nach dem richtigen Weg, um die Abhängigkeit zu definieren.Multiple-Artefakt-Auflösung mit Ivy

I Artifactory für mein Abhängigkeitsmanagement bin mit, und es richtig erkannt und gelöst, die einzelnen nativen Bibliotheksversionen für alle verfügbaren plaforms (siehe Screenshot):

Artifactory screenshot

Allerdings bin ich bei der fest Auflösung des

Eclipse Ivy resolution error

den Fehler erzeugt durch Ivy zeigt die richtige Auflösung Pfad.

Antwort

0

fand ich einen Hinweis in der ursprünglichen Maven Definition für diese Bibliotheken (in meinem lokalen Cache Ivy gefunden, %HOME%\.ivy2\cache\org.jcuda\jcuda-natives\windows-x86_64\ivy-0.8.0.xml.original), die den folgenden Klassifikator verwendet:

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

In meiner Ivy Konfiguration, I don‘ t Unterscheidung zwischen Betriebssystem und Architektur, aber die Verwendung des Catenated Classifier gibt mir windows-x86_64, das ist die JAR-Datei, die ich suche.

Ich brauchte den Maven-Namespace (xmlns:maven="http://maven.apache.org") zu ivy.xml hinzuzufügen:

<?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"> 

Und dann der folgenden Abhängigkeit maven:classifier die spezifische native Bibliothek zu lösen verwenden kann ich suche:

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