电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

瀏覽:3日期:2024-08-17 14:13:19

使用IDEA編輯Web項(xiàng)目已經(jīng)逐漸超過了使用eclipse的人數(shù),但是IDEA對于pom.xml的執(zhí)行也就是Maven方式導(dǎo)包支持并不是很完善,簡單來說就是pom.xml上面記錄的依賴庫一般都能導(dǎo)入,但是如果pom.xml上面的某個(gè)依賴庫失效,比如遠(yuǎn)程服務(wù)器關(guān)閉或者網(wǎng)絡(luò)不通,或者是你想要加入本地硬盤上的某個(gè)jar包而不修改pom.xml的時(shí)候,IDEA的弊端就會顯現(xiàn)出來。主要表現(xiàn)就是無法獲得的依賴庫或者本地Jar包無法放到/WEB-INF/lib目錄下,導(dǎo)致Web項(xiàng)目部署時(shí)報(bào)錯。

一個(gè)常見的錯誤就是ojdbc8,也就是連接Oracle數(shù)據(jù)庫12c所需的最新的jdbc驅(qū)動包,這個(gè)在maven網(wǎng)站上是可以搜索到的,如下http://mvnrepository.com/artifact/com.github.noraui/ojdbc8/12.2.0.1

給出的依賴庫網(wǎng)絡(luò)路徑為

<!-- https://mvnrepository.com/artifact/com.github.noraui/ojdbc8 --><dependency> <groupId>com.github.noraui</groupId> <artifactId>ojdbc8</artifactId> <version>12.2.0.1</version></dependency>

然而這個(gè)路徑在2015年還有效,在2018年已經(jīng)連接不上了(目前唯一還有效的是ojdbc for java 1.4的版本,2015年,無法支持oracle 10g及以后的數(shù)據(jù)庫),如果你在maven里這樣配置,那么IDEA的models里就會告訴你找不到該依賴庫,當(dāng)然你的WEB-INF里面也就不會有jdbc的jar包,你的應(yīng)用當(dāng)然就連接不了數(shù)據(jù)庫了

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

IDEA會貼心的在相關(guān)maven依賴庫下面加波浪線,并且把無法加載的資源用紅色表示。

如果此時(shí)我們手動向Libraries里面加入本地的Jar包可不可以呢?

能加當(dāng)然是能加進(jìn)去,不過根據(jù)我多次的反復(fù)實(shí)驗(yàn)發(fā)現(xiàn),你加入到Project Structure里面的Models或者Libraries里面之后,編寫代碼的時(shí)候是可以找到依賴的,但是在打war包的時(shí)候還是不會把ojdbc加入進(jìn)去的,所以還是沒能達(dá)到我們想要的效果。這主要是因?yàn)镮DEA只會把pom.xml里面記錄的jar包放入到WEB-INF,而不會理睬你其他方式加入的jar包。所以我們最后還得從maven入手。

此時(shí)我們就需要在上圖出現(xiàn)問題的地方找到標(biāo)紅色的Classes下面的路徑,通過手動點(diǎn)擊來修改成本地jar包的位置,并且應(yīng)該變?yōu)榫G色,如下

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

這樣IDEA就不會把這個(gè)maven源報(bào)錯了,同時(shí)pom.xml并沒有被修改,只是項(xiàng)目目錄下.idea目錄下的某個(gè).iml被修改了,這個(gè)修改要好好保留,因?yàn)椴恢朗裁磿r(shí)候你一編譯就又會按照pom.xml再給你改回來。如果需要長期不讓它報(bào)錯,可以使用cmd命令把本地的jar包加入到本地maven庫中,命令如下:(把當(dāng)前目錄下的ojdbc8.jar按照上面的pom.xml中的配置加入到本地maven源)

mvn install:install-file -Dfile=ojdbc8.jar -DgroupId=com.github.noraui -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar

另外如果不把maven里面自己設(shè)置的jar包輸出到web根目錄lib文件夾的話,那么打出來的war包或者是放在tomcat里跑還是會在啟動的時(shí)候報(bào)錯,如下就是使用了HttpClient也在maven里加入了HttpClient的依賴,但是啟動tomcat仍然報(bào)錯找不到類,此時(shí)你需要按照tomcat的一貫套路把相關(guān)jar包放到web根目錄的lib目錄下

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

此時(shí)還是進(jìn)入Project Structure,在左側(cè)找到Artifacts,然后找到WEB-INF,新建一個(gè)lib目錄,然后點(diǎn)擊加號把相關(guān)的庫引入

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

加完之后

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

只有這樣,打出來的war包的WEB根目錄下才會有l(wèi)ib文件夾和里面的相關(guān)依賴jar包

如果你發(fā)現(xiàn)修改了這里還沒有把自定義的jar包打包到WEB-INF下面(只是在代碼窗口里不報(bào)錯了),一個(gè)可能性是在編譯過程中剛剛的修改又被pom.xml給覆蓋了,另一個(gè)原因可能是你沒有把編譯結(jié)果輸出到待發(fā)布目錄,通過下面的方式可以修改。

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

后記:在沒有使用maven框架的時(shí)候,java文件和包是可以直接放在src目錄下的,但是引入maven之后,IDEA會自動幫你吧原來src下的包遷移到src/main/java下面,同時(shí)建立src/main/resources目錄,這里面一般放我們的log4j配置文件log4j.properties。

在沒有maven框架的時(shí)候,log4j.propertise應(yīng)該放在src下面才能被自動識別,而加入maven框架之后應(yīng)該放在src/main/resources下,否則log4j找不到默認(rèn)配置文件

如下:在不使用maven框架時(shí)的目錄結(jié)構(gòu),所有jar包都是放在項(xiàng)目根目錄下

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

使用maven后的目錄結(jié)構(gòu),沒有jar包了,以pom.xml進(jìn)行引入

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

另外還需要注意的一點(diǎn)就是,對于pom.xml里面和idea里面均有多出設(shè)置JDK版本的地方,最好統(tǒng)一,否則無法build成功,首先是pom.xml

<project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <groupId>groupId</groupId> <artifactId>XDphone</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51</version> </dependency> ...... </dependencies></project>

然后是項(xiàng)目代碼風(fēng)格

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

然后是編譯器版本在File-Settings里面

詳解IDEA使用Maven項(xiàng)目不能加入本地Jar包的解決方法

這樣就能避免internal compiler error了

標(biāo)簽: IDEA
相關(guān)文章:
主站蜘蛛池模板: 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 纳米涂料品牌 防雾抗污纳米陶瓷涂料厂家_虹瓷科技 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 天命文免费算命堂_自助算命_自由算命系统_长文周易 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 生物除臭剂-除味剂-植物-污水除臭剂厂家-携葵环保有限公司 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 电动葫芦-河北悍象起重机械有限公司 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 上海网站建设-上海网站制作-上海网站设计-上海做网站公司-咏熠软件 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 高博医疗集团上海阿特蒙医院 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 |