spring boot 项目mvn package命令执行时候会检测数据库连接

项目结构  sprignboot + maven + mysql + docker

在给项目打包的时候执行  mvn clean package 时候报错:

com.alibaba.druid.pool.DruidDataSource:    create connection error, url: jdbc:mysql://10.77.0.2:3306/cms?characterEncoding=utf8&useSSL=true, errorCode 0, state 08S01

查看报错原因可能是在package的时候去检查了数据库连接,由于数据库地址都是内网IP所以在打包的时候如果去连接肯定是连不上报错的,这时候就要去找的是哪个组件在package的时候去检查这个了

1号怀疑对象 : mybatis逆向工程

在项目代码构建之初用到了逆向工程  这部分用到了数据库连接,于是删掉了关于逆向工程的所有配置

心想这下应该不报错了吧!但是事实是相反的  还是报错!!同样的错误!

2 号怀疑对象   连接池/mybatis

经过查询网上连接池的配置  也没有说在package 的时候有相关的配置

3号  怀疑对象    测试类

和之前的项目对比发现多出的就是我的项目中有测试类  会不会是package的时候走了测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class EducationCmsApplicationTests {

    @Test
    public void contextLoads() {
    }

    @Autowired
    private SiteInfoMapper siteInfoMapper;

    @Test
    public void siteInfotest() {
        SiteInfoQuery siteInfo = new SiteInfoQuery();
        ArrayList strList = new ArrayList();
        strList.add("1");
        siteInfo.setOrganizationIdList(strList);
        List siteInfos = siteInfoMapper.selectBySelective(siteInfo);
        for (SiteInfo s: siteInfos) {
            System.out.println("ok");
            System.out.println(s.getSiteName());
        }
    }

}

验证方式:删掉所有测试类 

结果:执行成功

总结原因:

在package的时候么有跳过maven   test部分    造成在执行test的时候走了检查数据库连接

反证明:

加上test部分代码  执行命令  mvn clean package -Dmaven.test.skip=true  

结果:成功!!!

 

你可能感兴趣的:(spring boot 项目mvn package命令执行时候会检测数据库连接)