建立maven模組化專案遇到的問題總結
阿新 • • 發佈:2019-01-04
一、開發工具: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失敗,需要注意一下。