我有一個多模塊項目依賴於相當大的第三方庫/ apis。由於apis與開發環境管理外部的系統進行交互,因此無法對實際庫執行自動junit測試。作爲一種解決方法,我們創建了一些模擬interfaces/apis的類,以便我們可以進行聯合。我們使用eclipse作爲我們的開發IDE,所以爲了運行junits,我們只需將jar放在classpath中更高的位置,重新編譯,運行我們的junit,並且一切都很好。使用測試特定罐子重新編譯源代碼
尋找類似的解決方案,現在我們正在轉向Maven。基本上,在構建我們的代碼之後,需要使用模擬jar再次重建所有代碼以運行junit測試。這遍及應用程序的所有模塊。我試着在測試範圍中添加jar,但是它僅用於編譯測試類;源類仍然是用真正的jar編譯的。然而,它在運行時會失敗,因爲我們的模擬jar與實際jar的所有簽名都不匹配(所以jar的熱插拔不起作用;使所有簽名匹配將是大事業)。所以源代碼需要用jar重新編譯。
因此它似乎有兩種選擇: 1)使一個獨立的測試模塊,其以某種方式提取所有的源模塊代碼,並使用模擬罐重新編譯它和運行測試或 2)每個模塊創建在testjar除了使用模擬jar編譯的可安裝jar之外,在測試階段,依賴模塊會使用它。
請指教。任何如何做上述任何一個例子將不勝感激。