最近通过Docker + harbor + kuboard方式进行在开发环境进行部署,遇到了一个问题,本地idea中运行项目正常,但是kuboard一直报错重启。
BACK-OFF RESTARTING FAILED CONTAINER
通过查看kuboard日志发现是在运行容器启动项目时,缺少了一个本地数据库连接驱动。
然后检查项目中的pom文件,一开始感觉一切正常。pom配置如下:
<dependency>
<groupId>com.dm</groupId>
<artifactId>DmJdbcDriver</artifactId>
<version>18</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver-18.jar</systemPath>
</dependency>
………
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<build/>
其中数据库驱动放在了resources目录下的lib文件夹下,通过在dependency中直接本地指定。后面在通过在plugin maven工具中声明 includeSystemScope
支持本地jar包的形式。
但是后面无论怎么重新打包都是报相同错误。
后面在别人的代码里发现下面这段:文章来源:https://www.toymoban.com/news/detail-515466.html
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</build>
然后将这段 resources
移植到了我的build
下,重新打包之后,错误就消失了,项目成功运行,但是我还是没搞懂具体原因。然后又把这段代码注释掉,删除本地target,重新mvn clean package
,打算到jar包里去看看,到底有没有导入进去,但是这一次包里已经有了本地jar包,而且也没有报错了,问题无法复现了。虽然问题稀里糊涂的解决了,但是这种搞不清楚原因的事情真让人火大,希望下次在遇到类似问题可以找到原因吧。文章来源地址https://www.toymoban.com/news/detail-515466.html
到了这里,关于maven打jar包时,缺少本地jar包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!