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中的引用坐標改成如下就可以
拓展: 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文件即可
參考:
Maven倉庫理解、如何引入本地包、Maven多種方式打可執行jar包
springboot解決第三方依賴jar包的問題
總結
以上是生活随笔為你收集整理的maven下手动导入ojdbc6.jar的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LuckyDraw app被评为Micr
- 下一篇: vary