利用maven搭建modules工程

来源:互联网 发布:上海大华电子秤软件 编辑:程序博客网 时间:2024/05/16 00:55

利用maven搭建modules工程已经不是什么新鲜事了,现在也有很多更好的项目搭建方式,不过作为一个java新手,自己想搭建一个完整的工程。

一.利用maven搭建modules之helloword

什么是多modules工程?

在实际项目中会有许多的模块,为了方便模块的编写和管理,将不同模块分成一个个子项目,这些子项目都属于同一个父项目。

项目结构

结构说明:

tronsyn是父级项目,tronsyn.achieve,tronsyn.common等子项目都由它管理。

<groupId>com.tronsyn</groupId><artifactId>com.tronsyn</artifactId><packaging>pom</packaging><version>1.0.0</version>

它的作用是什么呢?

1.聚合:tronsyn执行mvn指令时,所有的子项目也会执行,不必挨个打包。

<modules>    <module>com.tronsyn.server</module>    <module>com.tronsyn.common</module>    <module>com.tronsyn.achieve</module>    <module>com.tronsyn.domain</module>    <module>com.tronsyn.mapper</module>    <module>com.tronsyn.web</module></modules>

2.管理:对依赖的jar包进行同一管理,规定jar包的id和version,但是在tronsyn中是没有下载jar包的,所以在子项目中想要加载jar还是要添加依赖,不过不必在添加版本号。这样的好处是,多个子项目添加了同样的依赖,当想要修改jar包版本时,只需修改父项目中的版本号即可。

//父pom<dependencyManagement>
<dependency>    <groupId>com.tronsyn</groupId>    <artifactId>com.tronsyn.server</artifactId>    <version>4.2.5</version></dependency>
</dependencyManagement>
***********************************
//子pom
<dependency>    <groupId>com.tronsyn</groupId>    <artifactId>com.tronsyn.server</artifactId></dependency>
子模块:

上图中的子模块是按照接口服务,接口实现,web端等等来区分的,各个子模块都继承了父项目,在pom文件中用<parent>标签体现

<parent>    <artifactId>com.tronsyn</artifactId>    <groupId>com.tronsyn</groupId>    <version>1.0.0</version></parent>
每个子模块之间又相互的依赖。其中tronsyn.web是一个web工程,所以其打包方式为war。

运行该项目在页面中展示helloword就成功了。

哈哈,似乎没有讲到什么重点,因为不管是不是modules工程,web工程都可以打开页面。其实,本小节只是想说明modules项目的结构,后面会说明一些更详细的地方。

二.modules模式下搭建spring + springmvc

modules模式下搭建spring + springmvc 和单module其实是一样的

1.读取web.xml : 加载spring-application.xml

2.加载spring , 读取spring-mvc.xml

3.加载springmvc

其中要用到的maven依赖和xml文件的配置这里就不再说明,网上有很多的教程.

这里需要说明的是:

1.spring的加载是放到web项目下的,包括数据库的链接等所有的配置.

2.modules之间需要依赖,但不能相互依赖,费则编译会报错,因为循环依赖的话,maven不知道应该先编译哪个项目.

3.由于是夸工程,所以所有工程建包时最好使用统一的格式比如:com.项目名.模块名.*,因为在使用类似

<context:component-scan base-package="com.项目名.*"/>标签时,需要统一管理路径

三.mytabis配置

在spring-application.xml文件中配置

<!-- 扫描xml文件 mybatis与数据库连接-->   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   <!-- dataSource是数据库配置 -->   <property name="dataSource" ref="dataSource" />
   <!-- mybatis的全局配置 -->   <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />   <!-- mapper.xml文件路径 -->   <property name="mapperLocations">      <list>         <value>classpath*:com/tronsyn/mapper/sqlmap/*.xml</value>      </list>   </property></bean><!-- 扫描接口 dao与xml文件连接--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">   <!-- mapper(dao层)路径 -->   <property name="basePackage" value="com.tronsyn.mapper" />   <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /></bean>
对应的mapper工程的结构


在mapper工程的pom中需要配置

否则无法编译sqlmap.xml文件
<build>    <resources>        <resource>            <directory>src/main/java</directory>            <includes>                <include>**/*.xml</include>            </includes>            <filtering>true</filtering>        </resource>    </resources></build>

原创粉丝点击