2009-04-18 11 views
6

Intenté usar TestNG con Apache Ivy, pero no tuve éxito. Aquí está mi ivy.xml:¿Cómo uso TestNG con 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> 

Esto no puede descargar en realidad un jarfile TestNG. Parece ser porque TestNG tiene un archivo jar para jdk14 y jdk15. Aquí está la salida de 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 

En el repositorio se pueden ver dos jarfiles diferentes: 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

¿Cómo se especifica ya sea jdk14 o jdk15?

Respuesta

8

Debe especificar el clasificador del artefacto que desea.

Hay un relacionado fix as of 2.1.0-RC1. Puede usar el elemento artifact dentro del elemento dependency para especificar el classifier que desea. En este caso, el clasificador debe ser jdk14 o jdk15. Si quieres jdk15 su ivy.xml sería entonces:

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

Nota la especificación del espacio de nombres XML "http://ant.apache.org/ivy/extra" como un atributo del elemento ivy-module. Sin eso, el e:classifier no funcionará.

Cuestiones relacionadas