2009-04-18 9 views
6

Próbowałem użyć TestNG z Apache Ivy, ale nie udało się. Oto moja ivy.xml:Jak używać TestNG z Apache Ivy?

<ivy-module version="2.0"> 

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

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

</ivy-module> 

To nie faktycznie pobrać jarfile TestNG. Wygląda na to, że TestNG ma plik jarfile dla jdk14 i jdk15. Tutaj jest wyjście z ivy:retrieve:

[ivy:retrieve] :: resolving dependencies :: me#myproject;[email protected] 
[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 

w repozytorium można zobaczyć dwa różne jarfiles: 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

Jak określić albo jdk14 lub jdk15?

Odpowiedz

8

Należy określić klasyfikator żądanego artefaktu.

Istnieje powiązany fix as of 2.1.0-RC1. Możesz użyć elementu artifact w elemencie dependency, aby określić żądany classifier. W takim przypadku klasyfikator powinien być jdk14 lub jdk15. Jeśli chcesz jdk15 swojej ivy.xml będzie wówczas:

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

Uwaga specyfikacja nazw XML "http://ant.apache.org/ivy/extra" jako atrybut elementu ivy-module. Bez tego e:classifier nie będzie działać.