1. 程式人生 > >spring boot 專案mvn package命令執行時候會檢測資料庫連線

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<String> strList = new ArrayList<String>();
        strList.add("1");
        siteInfo.setOrganizationIdList(strList);
        List<SiteInfo> 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  

結果:成功!!!