日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

maven下手动导入ojdbc6.jar

發布時間:2023/12/9 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 maven下手动导入ojdbc6.jar 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本地maven下手動導入ojdbc6.jar介紹兩種最常用方法:

一:將本地的Jar包依賴deploy到本地maven庫中
二:在工程中新建lib目錄放jar包便于引入多個jar包依賴

一:將本地的Jar包依賴deploy到本地maven庫中

1. 根據你需要的版本,下載ojdbc6.jar

百度云盤下載:點擊打開鏈接

2.將ojdbc6.jar放在你某個位置,我這里放在桌面上

3.打開終端(windows用戶打開cmd),輸入:

mvn install:install-file -Dfile=你的存放ojdbc6.jar文件的位置 -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=版本號 -Dpackaging=jar -DgeneratePom=true

4.比如我的Jar放在如下位置

5 我的執行命令如下

mvn install:install-file -Dfile=/D:/maven/ojdbc.jar/ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -DgeneratePom=true

6 windows+R鍵,輸入cmd調出執行安裝jar包的命令行的終端頁面

6 執行以上命令,當出現build success即手動導入ojdbc6.jar到本地maven倉庫成功


安裝位置:

注意:有的同學在執行以上命令時會出現

mvn不是內部或外部命令,也不是可運行的程序或批處理文件,出現該問題的其實就是你的Maven沒有按照正確的姿勢進行安裝,具體修復指南參考這篇
mvn不是內部或外部命令,也不是可運行的程序或批處理文件的解決辦法

8 pom文件引入手動導入本地maven倉庫ojdbc6.jar包

<dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>11.2.0.3</version></dependency>

對應關系如下

二:在工程中新建lib目錄放jar包便于引入多個jar包依賴

具體看之前寫的這篇文章 在idea中使用gradle導入本地依賴Oracle驅動包的方法
如果是maven項目的話,把pom中的引用坐標改成如下就可以

<!-- oracle Support --> <groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><scope>system</scope><systemPath>${basedir}/src/lib/ojdbc6.jar</systemPath> </dependency>-->

拓展: MAVEN依賴關系中Scope的作用

Dependency Scope 在POM 4中,中還引入了,它主要管理依賴的部署。目前依賴項的作用域可以使用5個值:
在定義項目的依賴項的時候,我們可以通過scope來指定該依賴項的作用范圍。scope的取值有compile、runtime、test、provided、system和import。
compile:這是依賴項的默認作用范圍,即當沒有指定依賴項的scope時默認使用compile。compile范圍內的依賴項在所有情況下都是有效的,包括運行、測試和編譯時。
runtime:表示該依賴項只有在運行時才是需要的,在編譯的時候不需要。這種類型的依賴項將在運行和test的類路徑下可以訪問。
test:表示該依賴項只對測試時有用,包括測試代碼的編譯和運行,對于正常的項目運行是沒有影響的。
provided:表示該依賴項將由JDK或者運行容器在運行時提供,也就是說由Maven提供的該依賴項我們只有在編譯和測試時才會用到,而在運行時將由JDK或者運行容器提供。
system:當scope為system時,表示該依賴項是我們自己提供的,不需要Maven到倉庫里面去找。指定scope為system需要與另一個屬性元素systemPath一起使用,它表示該依賴項在當前系統的位置,使用的是絕對路徑。

POM文件里面可以引用一些內置屬性(Maven預定義可以直接使用)

${basedir} 項目根目錄
${version}表示項目版本;
project.basedir同{project.basedir}同project.basedir{basedir};
project.version表示項目版本,與{project.version}表示項目版本,與project.version,{version}相同;
${project.build.directory} 構建目錄,缺省為target
${project.build.sourceEncoding}表示主源碼的編碼格式;
${project.build.sourceDirectory}表示主源碼路徑;
${project.build.finalName}表示輸出文件名稱;
${project.build.outputDirectory} 構建過程輸出目錄,缺省為target/classes

新建個lib目錄放依賴jar包打包問題

通過這種方式引入依賴后,在編碼的時候沒有問題,但是用mvn clean package打成jar包后運行就是報錯,正式找不到這些jar包中的相關類。把jar包解壓后在BOOT-INF/lib里面也確實沒有發現用上述方式引入的jar包,看來是沒有把src/lib目錄里面的jar打進去,后來通過查找也終于找到方法了,修改pom文件,在build標簽下增加如下配置:

src/lib BOOT-INF/lib/ **/*.jar src/main/resources BOOT-INF/classes/ 目的就是把src/lib下的jar打到BOOT-INF/lib下,但是必須要增加第二個resource,不然src/main/resources下的配置文件又打不進jar包了。

如果要打成war包,則pom文件需要這樣改:

<!--設置maven-war-plugins插件,否則外部依賴無法打進war包--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><webResources><resource><directory>lib</directory><targetPath>WEB-INF/lib/</targetPath><includes><include>**/*.jar</include></includes></resource></webResources></configuration></plugin>

注意:

有的同學啟動項目的時候有可能會報一下這個錯誤

Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.

百度會告訴你
需要在啟動類的@EnableAutoConfiguration或@SpringBootApplication中添加exclude
= {DataSourceAutoConfiguration.class},排除此類的autoconfig。啟動以后就可以正常運行。

這是因為添加了數據庫組件,所以autoconfig會去讀取數據源配置,而我新建的項目還沒有配置數據源,所以會導致異常出現。

但是 但是這里我們是要和數據庫做交互的,所以這個注解顯然是不合適的,那么這個問題怎么解決呢?
我之前有一篇文章,不是這個錯誤,但是也是這個辦法可以解決,加上以下pom文件即可

<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency>

參考:
Maven倉庫理解、如何引入本地包、Maven多種方式打可執行jar包
springboot解決第三方依賴jar包的問題

總結

以上是生活随笔為你收集整理的maven下手动导入ojdbc6.jar的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。