maven打jar包时,缺少本地jar包

最近通过Docker + harbor + kuboard方式进行在开发环境进行部署,遇到了一个问题,本地idea中运行项目正常,但是kuboard一直报错重启。

BACK-OFF RESTARTING FAILED CONTAINER

通过查看kuboard日志发现是在运行容器启动项目时,缺少了一个本地数据库连接驱动。
然后检查项目中的pom文件,一开始感觉一切正常。pom配置如下:

        <dependency>
            <groupId>com.dmgroupId>
            <artifactId>DmJdbcDriverartifactId>
            <version>18version>
            <scope>systemscope>
            <systemPath>${project.basedir}/src/main/resources/lib/DmJdbcDriver-18.jarsystemPath>
        dependency>
        ………

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <configuration>
                    <includeSystemScope>trueincludeSystemScope>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombokgroupId>
                            <artifactId>lombokartifactId>
                        exclude>
                    excludes>
                configuration>
            plugin>
        plugins>
  <build/>

其中数据库驱动放在了resources目录下的lib文件夹下,通过在dependency中直接本地指定。后面在通过在plugin maven工具中声明 includeSystemScope支持本地jar包的形式。
但是后面无论怎么重新打包都是报相同错误。
后面在别人的代码里发现下面这段:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <configuration>
                    <includeSystemScope>trueincludeSystemScope>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombokgroupId>
                            <artifactId>lombokartifactId>
                        exclude>
                    excludes>
                configuration>
            plugin>
        plugins>

        <resources>
            <resource>
                <directory>src/main/resourcesdirectory>
            resource>
            <resource>
                <directory>libdirectory>
                <targetPath>BOOT-INF/lib/targetPath>
                <includes>
                    <include>*.jarinclude>
                includes>
            resource>
        resources>
    build>

然后将这段 resources移植到了我的build下,重新打包之后,错误就消失了,项目成功运行,但是我还是没搞懂具体原因。然后又把这段代码注释掉,删除本地target,重新mvn clean package,打算到jar包里去看看,到底有没有导入进去,但是这一次包里已经有了本地jar包,而且也没有报错了,问题无法复现了。虽然问题稀里糊涂的解决了,但是这种搞不清楚原因的事情真让人火大,希望下次在遇到类似问题可以找到原因吧。

你可能感兴趣的:(错误经验,maven,jar,java)