背景:
Java > maven 的 jar 项目
现象:
eclipse和IDEA下都能正常运行,mvn clean package运行异常:
Caused by: java.lang.NullPointerException
at java.io.File.<init>(Unknown Source) ~[?:1.8.0_191]
at java.util.jar.JarFile.<init>(Unknown Source) ~[?:1.8.0_191]
at org.sqlite.SQLiteJDBCLoader.getNativeLibraryPackageNames(Unknown Sour
ce) ~[sqlitejdbc-3.25.2.jar!/:3.25.2]
at org.sqlite.SQLiteJDBCLoader.extractNativeLibrariesFromPackage(Unknown
Source) ~[sqlitejdbc-3.25.2.jar!/:3.25.2]
at org.sqlite.SQLiteJDBCLoader.initialize(Unknown Source) ~[sqlitejdbc-3
.25.2.jar!/:3.25.2]
at org.sqlite.JDBC.<init>(Unknown Source) ~[sqlitejdbc-3.25.2.jar!/:3.25
.2]
at org.sqlite.JDBC.<clinit>(Unknown Source) ~[sqlitejdbc-3.25.2.jar!/:3.
25.2]
解决方案:
先后尝试了N中方式,包括引入pom依赖(防止打包中没有将mapping.xml打入保中)
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
或是
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>false</filtering>
</resource>
都没有得到解决,最后怀疑jdbc驱动版本冲突。
更换3.8.11.2问题解决,耗时2天多的问题,搞定
下面是pom依赖
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>${sqlite.version}</version>
</dependency>