3 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
來自Maven 文檔:
system:此范圍類似于提供的范圍,只是您必須顯式提供包含它的 JAR。工件始終可用,不會(huì)在存儲(chǔ)庫中查找。
provided:這很像編譯,但表示您希望 JDK 或容器在運(yùn)行時(shí)提供依賴項(xiàng)。例如,在為 Java Enterprise Edition 構(gòu)建 Web 應(yīng)用程序時(shí),您可以將對(duì) Servlet API 和相關(guān) Java EE API 的依賴設(shè)置為提供的范圍,因?yàn)?Web 容器提供了這些類。此范圍僅在編譯和測(cè)試類路徑上可用,不可傳遞。
似乎系統(tǒng)范圍需要容器或 JDK 提供依賴作為提供的范圍。因此,依賴項(xiàng)不會(huì)打包到 WAR 文件中。
maven-war-plugin
您可以像這樣將依賴項(xiàng)打包到 lib 文件夾中:
<plugin>
? ? <artifactId>maven-war-plugin</artifactId>
? ? <version>2.4</version>
? ? <configuration>
? ? ? ? ...
? ? ? ? <webResources>
? ? ? ? ? ? <resource>
? ? ? ? ? ? ? ? <directory>libs</directory>
? ? ? ? ? ? ? ? <targetPath>WEB-INF/lib</targetPath>
? ? ? ? ? ? ? ? <includes>
? ? ? ? ? ? ? ? ? ? <include>ojdbc7-12.1.0.2.jar</include>
? ? ? ? ? ? ? ? </includes>
? ? ? ? ? ? </resource>
? ? ? ? </webResources>
? ? </configuration>
</plugin>

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
作為 Maven 構(gòu)建的一部分,編譯范圍內(nèi)的依賴項(xiàng)會(huì)自動(dòng)添加到目標(biāo)的 WEB-INF/lib 中。系統(tǒng)范圍內(nèi)的依賴關(guān)系不是,必須通過定義明確提供具有系統(tǒng)范圍的依賴關(guān)系。

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
WAR 是 Tomcat、Glassfish、JBoss (...) 等 Servlet 容器的 Web 存檔。它們由 Servlet 規(guī)范指定。規(guī)范指出數(shù)據(jù)源(數(shù)據(jù)庫)在 Servlet-Containers 的領(lǐng)域。
(...) 類型 javax.sql.DataSource,在組件可供應(yīng)用程序使用之前,容器會(huì)為其注入對(duì)數(shù)據(jù)源的引用。
您應(yīng)該將數(shù)據(jù)庫驅(qū)動(dòng)程序放置到 servlet 容器中,而不是 Web 應(yīng)用程序中。
添加回答
舉報(bào)