Frage

Ich habe versucht, zu verwenden, TestNG mit Apache Ivy , war aber nicht erfolgreich. Hier ist mein ivy.xml:

<ivy-module version="2.0">

    <info organisation="me" module="myproject"/>

    <dependencies>
      <dependency org="org.testng" name="testng" rev="5.8" />
    </dependencies>

</ivy-module>

Dies schlägt fehl, um tatsächlich ein TestNG jarfile herunterladen. Es scheint zu sein, weil TestNG eine jarfile für jdk14 und jdk15 hat. Hier ist die Ausgabe von ivy:retrieve:

[ivy:retrieve] :: resolving dependencies :: me#myproject;working@jared-mbp17
[ivy:retrieve]  confs: [default]
[ivy:retrieve]  found org.testng#testng;5.8 in public
[ivy:retrieve] :: resolution report :: resolve 1139ms :: artifacts dl 11ms
    ---------------------------------------------------------------------
    |                  |            modules            ||   artifacts   |
    |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
    ---------------------------------------------------------------------
    |      default     |   1   |   1   |   1   |   0   ||   1   |   0   |
    ---------------------------------------------------------------------
[ivy:retrieve] 
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve]      [FAILED     ] org.testng#testng;5.8!testng.jar:  (0ms)
[ivy:retrieve]  ==== shared: tried
[ivy:retrieve]    /Users/jared/.ivy2/shared/org.testng/testng/5.8/jars/testng.jar
[ivy:retrieve]  ==== public: tried
[ivy:retrieve]    http://repo1.maven.org/maven2/org/testng/testng/5.8/testng-5.8.jar
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      ::              FAILED DOWNLOADS            ::
[ivy:retrieve]      :: ^ see resolution messages for details  ^ ::
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]      :: org.testng#testng;5.8!testng.jar
[ivy:retrieve]      ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] 
[ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

Im Repository können Sie zwei verschiedene jarfiles sehen: http://repo1.maven.org/maven2 /org/testng/testng/5.8/testng-5.8-jdk14.jar http://repo1.maven.org/maven2 /org/testng/testng/5.8/testng-5.8-jdk15.jar

Wie gebe ich entweder jdk14 oder jdk15?

War es hilfreich?

Lösung

Sie müssen die Sichter des Artefakts spezifizieren Sie wollen.

Es ist ein verwandter zu beheben, wie von 2.1.0-RC1 . Sie können das Element artifact im dependency Elemente verwenden, um die classifier festgelegt werden sollen. In diesem Fall sollte der Klassifizierer jdk14 oder jdk15 sein. Wenn Sie Ihre jdk15 ivy.xml wäre dann:

<ivy-module version="2.0"
            xmlns:e="http://ant.apache.org/ivy/extra">

    <info organisation="me" module="myproject"/>

    <dependencies>
      <dependency org="org.testng" name="testng" rev="5.8"
                  transitive="false">
        <artifact name="testng" type="jar" ext="jar" e:classifier="jdk15" />
      </dependency>
    </dependencies>

</ivy-module>

Beachten Sie die Spezifikation des XML-Namespace "http://ant.apache.org/ivy/extra" als Attribut des ivy-module Element. Ohne dass der e:classifier wird nicht funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top