亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Maven:在 war/WEB-INF/lib 中找不到本地依賴文件

Maven:在 war/WEB-INF/lib 中找不到本地依賴文件

青春有我 2023-04-26 16:40:34
我已經添加了我的本地依賴庫(jar文件):<dependency>     <groupId>com.oracle.jdbc</groupId>     <artifactId>ojdbc7</artifactId>     <version>12.1.0.2</version>     <scope>system</scope>     <systemPath>${project.basedir}/libs/ojdbc7-12.1.0.2.jar</systemPath>     </dependency>一切正常,直到 maven 生成 war artifact。我查看了生成的 war 文件,但是里面沒有 jar 依賴項。有任何想法嗎?我知道我可以使用maven installfile. 我需要使用這種依賴聲明來關注問題。
查看完整描述

3 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

來自Maven 文檔:

system:此范圍類似于提供的范圍,只是您必須顯式提供包含它的 JAR。工件始終可用,不會在存儲庫中查找。

provided:這很像編譯,但表示您希望 JDK 或容器在運行時提供依賴項。例如,在為 Java Enterprise Edition 構建 Web 應用程序時,您可以將對 Servlet API 和相關 Java EE API 的依賴設置為提供的范圍,因為 Web 容器提供了這些類。此范圍僅在編譯和測試類路徑上可用,不可傳遞。

似乎系統范圍需要容器或 JDK 提供依賴作為提供的范圍。因此,依賴項不會打包到 WAR 文件中。

maven-war-plugin您可以像這樣將依賴項打包到 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>


查看完整回答
反對 回復 2023-04-26
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

作為 Maven 構建的一部分,編譯范圍內的依賴項會自動添加到目標的 WEB-INF/lib 中。系統范圍內的依賴關系不是,必須通過定義明確提供具有系統范圍的依賴關系。

查看完整回答
反對 回復 2023-04-26
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

WAR 是 Tomcat、Glassfish、JBoss (...) 等 Servlet 容器的 Web 存檔。它們由 Servlet 規范指定。規范指出數據源(數據庫)在 Servlet-Containers 的領域。

(...) 類型 javax.sql.DataSource,在組件可供應用程序使用之前,容器會為其注入對數據源的引用。

您應該將數據庫驅動程序放置到 servlet 容器中,而不是 Web 應用程序中。


查看完整回答
反對 回復 2023-04-26
  • 3 回答
  • 0 關注
  • 288 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號