2011-01-07 45 views
1

我想在運行時在我的項目中搜索類路徑。我們使用Maven進行構建管理,使用Hudson進行CI構建。當然,在我的本地盒子裏,一切都很好。但是,當Hudson運行單元測試時,它找不到在構建過程中生成的類 - Maven應該將它們放在./target/classes中,但是當我從Hudson登錄類路徑(System.getProperty("java.class.path"))時,它只給出一個包含兩個maven-相關的JAR--根本沒有目錄,當然不是當前項目的編譯器輸出目錄。這是哈德森的錯嗎? Maven的?我是否以這種錯誤的方式去做?哈德森不使用Maven生成的類路徑?

ETA:I 認爲這可能是通過升級Hudson使用的Maven運行時修復的。問題是我們通過反射尋找插件類,類似於this post中的想法 - 不是實際的代碼,但它給了你這個想法。無論如何,這聽起來像Hudson使用的類路徑只能「引導」實際的測試工具;無論出於何種原因,它現在似乎已經修復。長話短說:如果你有類似的問題,請嘗試升級你的Maven。

+0

究竟是什麼問題?測試是否因類路徑錯誤而失敗? – Raghuram 2011-01-08 03:34:39

回答

0

兩個修復程序。一,升級Maven。二,不要依賴classpath hackery來迭代你的classloader可以看到的東西,la是描述中鏈接到的「資源發現」技巧。