Idea打Jar包的坑,工程使用ali druid 等ali组件

场景:使用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-pluginmaven打包可运行的fat-jar的简单方法

转载于:https://my.oschina.net/nipin/blog/1592139

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值