我正在編寫(xiě)一個(gè) Java Web 應(yīng)用程序。剛開(kāi)始的時(shí)候,每次需要使用外部包的時(shí)候,都會(huì)jar手動(dòng)下載s,手動(dòng)下載每個(gè)的所有依賴(lài),jar放到libraries文件夾中(在Netbeans中)。隨著時(shí)間的推移,我開(kāi)始使用依賴(lài)管理器(Ant)?,F(xiàn)在,我想將我的依賴(lài)項(xiàng)管理器用于我所有的外部庫(kù)。如果在執(zhí)行此更改后我運(yùn)行我的應(yīng)用程序并且它成功部署(沒(méi)有ClassNotFoundExceptions 和沒(méi)有NoClassDefFoundErrors),是否可以假設(shè)我沒(méi)有遺漏任何東西并且我的應(yīng)用程序?qū)⒃谕獠堪\(yùn)行時(shí)順利運(yùn)行?或者,我是否需要單獨(dú)測(cè)試 Web 應(yīng)用程序中的每個(gè)功能以確認(rèn)我對(duì)庫(kù)所做的更改沒(méi)有改變應(yīng)用程序的運(yùn)行方式?
1 回答

烙印99
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
它實(shí)際上取決于這些庫(kù)中的代碼。啟動(dòng)時(shí)只加載部分類(lèi),因此您可能會(huì)錯(cuò)過(guò)一些東西。也有可能您正在運(yùn)行時(shí)手動(dòng)加載某些類(lèi),即Class.forName(String)
此代碼未在啟動(dòng)時(shí)觸發(fā)。因此,我會(huì)說(shuō)你不能100%確定。
通常在 Java 中,這里有 3 種構(gòu)建方法:
勢(shì)在必行 - 你在說(shuō)“如何組裝你的代碼”。這方面的典型示例是Apache Ant。
聲明性 - 您說(shuō)的是“您要匯編哪些代碼”。這方面的典型例子是Apache Maven
混合 - 它利用了以前的系統(tǒng)。這是Gradle。
添加回答
舉報(bào)
0/150
提交
取消