Idea打Jar包的坑,工程使用ali druid 等ali组件
為什么80%的碼農都做不了架構師?>>> ??
場景:使用Idea 把依賴spring、alidruid連接池 jar的java 工程,打成一個可運行的jar (形如 java -jar xxx.jar)。
方法:參考了一些帖子,Maven生成可以直接運行的jar包的多種方式 和 使用Idea打jar包 大概有幾種方法:1、使用Idea工具本身打jar 2、使用maven插件。
問題:使用以上幾種方法,打出一個xx.jar包,已經把依賴的spring jar、ali jar打進xx.jar去了。在使用java -jar xx.jar運行的時候,spring報錯:spring加載配置文件applicationContext.xml出錯,拋出nested exception is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 'beans' 的聲明r的異常信息
查了很多帖子,大多說此問題是因為spring xml 頭信息與spring版本不同引起的。其實不然。 解壓縮xx.jar 發現,spring.handlers 和 spring.schemas 兩個文件中只有ali druid的配置,spring本身的配置信息沒有了,由此斷定上面的報錯是因為在打包時,連接池的配置覆蓋了spring的導致spring xsd無法解析。
那如何解決呢? 使用maven-assembly-plugin來打包或者idea,包含所依賴的所有jar的內容(這些jar包會被解開)。 換了spring-boot插件,包含所依賴的所有的jar包(這些jar包不會被解開)。問題解決!!!
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>1.5.6.RELEASE</version><configuration><mainClass>xxx.Main</mainClass> </configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins> </build>參考SpringBoot入門之spring-boot-maven-plugin 和 maven打包可運行的fat-jar的簡單方法
轉載于:https://my.oschina.net/nipin/blog/1592139
總結
以上是生活随笔為你收集整理的Idea打Jar包的坑,工程使用ali druid 等ali组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL MIN() 函数
- 下一篇: MyBatis 几个常用的 jdbcT