2009-04-18 34 views
6

Tôi đã cố gắng sử dụng TestNG với Apache Ivy, nhưng không thành công. Đây là của tôi ivy.xml:Làm cách nào để sử dụng TestNG với 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> 

Điều này không thực sự tải xuống một chú lùn TestNG. Nó có vẻ là bởi vì TestNG có một jarfile cho jdk14 và jdk15. Dưới đây là kết quả từ 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 

Trong kho bạn có thể thấy hai jarfiles khác nhau: 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

Làm thế nào để xác định một trong hai jdk14 hoặc jdk15?

Trả lời

8

Bạn cần chỉ định trình phân loại của tạo tác bạn muốn.

Có liên quan fix as of 2.1.0-RC1. Bạn có thể sử dụng phần tử artifact trong phần tử dependency để chỉ định classifier bạn muốn. Trong trường hợp này, trình phân loại phải là jdk14 hoặc jdk15. Nếu bạn muốn jdk15 bạn ivy.xml sau đó sẽ là:

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

Lưu ý các đặc điểm kỹ thuật của không gian tên XML "http://ant.apache.org/ivy/extra" như một thuộc tính của phần tử ivy-module. Nếu không có, e:classifier sẽ không hoạt động.

Các vấn đề liên quan