1.简介
用Eclipse搭建一个SSM聚合工程,分为三个子模块(spring+Mybatis架构模块,utils模块,business主工程模块)和一个聚合模块(parent),优点是在不同的项目添加依赖比较清晰,避免加入多余的依赖。
2.准备工作
打开eclipse,切换到java视图(点击右上角带加号的小窗子,选择java);
新建Working set,命名为yycg(点击左侧栏倒三角,选择第一个Top Level Elements的第二个Working Sets,出现一个文件Other Projects之后,再次点击倒三角,选择Configure Working Sets,new一个Working set);
3.步骤
3.1创建工程模块
- 创建spring+Mybatis技术架构模块
yycg右键,new–other–Maven–Maven Project–next–填写路径
next–选择quickstart–next–填写三坐标
创建完成之后,删除文件夹src/main/java和src/main/test(因为不写代码),在pom.xml文件加入sping和mybatis的依赖 - 创建工具类模块
创建过程和1相同,只是创建完成之后不删除文件夹src/main/java和src/main/test,而是在该文件夹下创建package把工具类拷进去,在pom.xml加入相关依赖 - 创建主工程(写业务代码的项目,也可以把里面的controller之类的都创一个项目)
创建过程和1相同,不同之处是选择的Archetype不是quickstarts是webapp
同时,开发业务代码时,要用到前面俩模块,因此pom文件除了加开发需要的jar包(数据库之类的),同时还需要加入对以上两个模块的依赖
<dependency>
<groupId>yycg</groupId>
<artifactId>springmybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>yycg</groupId>
<artifactId>yycgutil</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
3.2工程聚合
- 创建聚合模块parent
作用是将以上创建的各模块聚合,maven自动识别模块之间的依赖(这样只需要在聚合模块parent的目录中,使用mvn命令打war包)
创建过程同3.1/2,修改pom文件,删除不需要的东西,只需要保留以下:
<groupId>yycg</groupId>
<artifactId>yycgparent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<!-- 设定子模块的目录 ,目录要有pom.xml,使用相对路径 -->
<module>../yycgproject</module>
<module>../yycgutil</module>
<module>../springmybatis</module>
</modules>
<name>yycgparent</name>
<url>http://maven.apache.org</url>
注意packaging是pom,另把各个子模块相对路径加进去
2. 将聚合模块的坐标和路径加到子模块的pom文件中
<parent>
<relativePath>../yycgparent</relativePath>
<groupId>yycg</groupId>
<artifactId>yycgparent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
将重复的groupId和version去掉
3.修改主工程模块yycgproject的pom文件
在加入了parent的坐标后,将主工程的打包方式改为war包,然后加插件(有个maven插件是必须加的就不写了):
<!-- war包生成插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
</configuration>
</plugin>
<!-- tomcat运行插件 -->
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.2.3</version>
<configuration>
<container>
<containerId>tomcat7x</containerId>
<home>C:/Users/Administrator/Downloads/java/tomcat7.0</home>
</container>
<configuration>
<type>existing</type>
<home>C:/Users/Administrator/Downloads/java/tomcat7.0</home>
</configuration>
</configuration>
<executions>
<execution>
<id>cargo-run</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
3.3打包
进入parent模块目录,cmd mvn install
3.4maven小问题
识别maven仓库默认首先读C:\Users\Administrator.m2下的setting.xml,然后读maven安装目录config下的setting.xml(MAVEN_HOME环境变量中配置的),所以删掉.m2下的setting.xml,然后在eclipse/preference/maven/user settings 中填写配置文件的路径,点update settings就会使用这个仓库,子工程生成的jar包也会存在这里面