1. 程式人生 > >建立maven模組化專案遇到的問題總結

建立maven模組化專案遇到的問題總結

一、開發工具:idea
二、資料庫:mysql
三、語言:java
四、問題記錄:

    1、編寫測試類進行測試的時候,需要注意通過dependency進行依賴另一個模組時候,scope為test的不能繼承過來,例如:

xxx-commons模組下的pom.xml:

<!-- 單元測試 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope
>
test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <scope>test</scope> </dependency>

當xxx-manager依賴xxx-commons的時候,上面兩個jar不能依賴過來:

        <dependency>
            <groupId>com.ssl</groupId>
            <artifactId>xxx-commons</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

此時,junit和spring-test並不會引入到xxx-manager模組下面,但是當xxx-manager是xxx-commons的子模組時,便可以引用到。

2、使用spring-test、junit編寫測試類的時候,需要引入

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

3、注意classpath*和classpath的區別:classpath*會將各個模組下的classpath都掃描一遍,而classpath只掃描當前模組。

4、在使用mybatis時,當sql的xml檔案和mapper檔案不在同一個目錄下,配置sqlSessionFactory的時候,需要用指定mapperLocations,例如:

<!--  配置sqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
             <!-- mybatis配置檔案,載入了分頁外掛 -->
            <property name="configLocation" value="classpath:mybatis/SqlMapConfi.xml"/>
            <property name="dataSource" ref="dataSource"/>
            <!-- 指定mapping.xml檔案 -->
            <property name="mapperLocations" value="classpath:com/ssl/shop/mapper/xml/*.xml"/>
    </bean>
    <!-- 配置掃描包,載入mapper代理物件 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.ssl.shop.mapper"/>
    </bean>

5、idea中,通過點選右側的maven projects,會有各個maven專案的依賴以及外掛詳情,也可選中外掛,直接執行,但是Plugins下的install-install:install命令會報錯,此時應該選中上方的方形M圖示(Execute maven Goal),選擇模組的目錄,然後填入install命令,最後點選Execute即可。

6、執行install的時候,也會去執行一遍測試類中的方法,假如測試類中的方法執行失敗,也會導致該模組install失敗,需要注意一下。