0
我們通過maven使用了一些包含xml解析器庫的庫。我們認爲我們已經排除了大部分這些因爲我們正在使用一個更新的版本。是否有JUnit庫/實用程序來檢測庫的存在?
是否有某種JUnit庫檢查ear/war是否存在該jar,並在其中存在測試失敗?或者,我們是否需要編寫一些代碼來解壓縮存檔並循環檢查目錄?
我們通過maven使用了一些包含xml解析器庫的庫。我們認爲我們已經排除了大部分這些因爲我們正在使用一個更新的版本。是否有JUnit庫/實用程序來檢測庫的存在?
是否有某種JUnit庫檢查ear/war是否存在該jar,並在其中存在測試失敗?或者,我們是否需要編寫一些代碼來解壓縮存檔並循環檢查目錄?
通常發生這種情況時,兩個罐子中都會出現類,所以您可以檢查您的類路徑以查找重複項。鑑於一類,你可以看到它是如何經常出現在classpath:
public void testSomeClassInClassPathOnce() {
String className = SomeClass.class.getName();
String path = className.replace('.', File.separatorChar) + ".class";
Enumeration<URL> urls = ClassLoader.getSystemResources(path);
assertTrue(urls.hasMoreElements());
urls.nextElement();
assertFalse(urls.hasMoreElements());
}
如果舊罐子有一個類,是不是在新的一個,那麼你可以使用ClassLoader.getSystemResource()
,看看是否類是上你的類路徑。
請注意,您需要確保您的JUnit測試具有類路徑中的所有生產jar。