2013-02-28 202 views
0

常春藤可以解決依賴關係的依賴關係,文檔說可以使用模塊配置來告訴ivy配置依賴於給定的依賴關係配置。如何配置常春藤來解決htmlunit的依賴問題

我想可以使用HtmlUnit,在一個項目中,其sourceforge page依賴的信息,我發現依賴設置我翻譯的行家規格常春藤:

<dependency org="net.sourceforge.htmlunit" name="htmlunit" rev="2.11"/> 

我寫了一個測試,編吧,試着運行它時,我有一個ClassNotFoundException,我又回到了SourceForge上,並尋找有關的HtmlUnit的依賴關係的信息,在此page我發現我看了,所以我想我需要的一切使用模塊配置的魔力,所以我說:

<dependency org="net.sourceforge.htmlunit" name="htmlunit" rev="2.11" conf="test->compile; test->test"/> 

,但我有這個錯誤告訴我的配置是不是net.sourceforge.htmlunit#發現的HtmlUnit; 2.11,「編譯」

回答

2

的編譯配置確實存在....

試圖複製你的的問題,我發現了以下錯誤消息:

[ivy:resolve]  :::::::::::::::::::::::::::::::::::::::::::::: 
[ivy:resolve]  ::   UNRESOLVED DEPENDENCIES   :: 
[ivy:resolve]  :::::::::::::::::::::::::::::::::::::::::::::: 
[ivy:resolve]  :: net.sourceforge.htmlunit#htmlunit;2.11: 
    configuration not public in net.sourceforge.htmlunit#htmlunit;2.11: 'test'...... 

當常春藤轉換一個Maven模塊到配置它的方式這樣做是不允許傳遞測試依賴的分辨率。

這個推理有一些邏輯,畢竟這個測試依賴關係是爲了支持htmlunit模塊的測試而設計的。你的模塊應該明確聲明自己的測試依賴關係......

我通常會建議將映射「遠程」運行時Maven範圍的「測試」配置,以獲取更多的罐子:

<dependency org="net.sourceforge.htmlunit" 
      name="htmlunit" 
      rev="2.11" 
      conf="compile->default;test->runtime"/> 

問題是在htmlunit模塊中沒有「運行時」依賴關係,這意味着這不會有任何幫助。

總之,你有沒有表示哪一個類失蹤。如果是一些明顯的JUnit一樣,那麼我建議這一點是應該在你的ivy文件中明確聲明。

相關問題