我想在運行時在我的項目中搜索類路徑。我們使用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。
究竟是什麼問題?測試是否因類路徑錯誤而失敗? – Raghuram 2011-01-08 03:34:39