1. File-->New-->Maven Project,创建一个简单工程,并自定义保存路径。
2. 点击Next,指定组织ID,项目ID,项目版本,包类型,最后点击Finish。
3. 在Eclispe工作空间找到刚才新建的项目,把其下的src目录删除。
4. 右键该项目,New-->Project-->Maven Module
5. 出现下图的对话框,输入模块名称
6. 为新建模块指定原型,如下图
7. 点击下一步进入下图所示的概览对话框,确认无问题,可点击Finish。
8. 依次创建其他的maven模块,mavenproject-dal模块,mavenproject-service模块。
9. 创建web模块,过程大同小异,只不过在第5步的时候指定的原型不同,见下图。
10. 打开mavenproject-web模块,在src/main文件夹下新建java文件夹。
11. 打开web.xml文件,将内容修改如下。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true" version="3.0"> <display-name>mavenproject-web</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
12. 将mavenproject-web项目部署到tomcat,并访问http://localhost:8080/mavenproject-web,即可见到主页呈现的内容。
注意事项:新建maven项目,eclipse会默认web版本为2.3,jdk为1.5,这跟我们的要求不符,因此我们需要自行配置web和jdk的版本。
1. 右键项目,Maven-->Update Project时,项目引用的jre版本会变为1.5,这可能导致编译出错。
解决办法:
(1)(推荐)在每个模块的pom.xml文件里的<project>标签之间加入以下代码,指定jre版本为1.7,这样无论项目在你的Eclipse还是别人的Eclipse里面都是采用jre1.7版本编译
<build> <plugins> <!-- define the project compile level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build>
(2)若需要Eclipse在新建工程时,默认采用jre1.7版本,则需要打开maven的conf文件夹下的settings.xml文件
在<settings>标签之间加入以下代码,并保存settings.xml
<profiles> <profile> <id>jdk-1.7</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> </properties> </profile> </profiles>
然后到eclispe-->Window-->Preferences-->Maven-->User Settings,在右侧点击Update Settings。
2. 修改web的版本,右键web项目-->Properties-->Project Facets,修改Dynamic Web Module的版本为3.0,提示出错。
解决办法:
(1)打开Window-->Show View-->Navigator视窗
(2)选择下图文件并打开编辑
(3)将jst.web由2.3改为3.0,并保存
(4)右键web项目-->Maven-->Update Project,发现不再报错,接着右键web项目-->Properties-->Project Facets查看web的版本已经为3.0。
13. 建立各模块的依赖关系
(1)ssm的pom.xml如下
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.llj</groupId> <artifactId>ssm</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>ssm-commons</module> <module>ssm-dal</module> <module>ssm-service</module> <module>ssm-web</module> </modules> <properties> <encoding>UTF-8</encoding> <project.build.sourceEncoding>${encoding}</project.build.sourceEncoding> <project.reporting.outputEncoding>${encoding}</project.reporting.outputEncoding> <project.resources.sourceEncoding>${encoding}</project.resources.sourceEncoding> <archetype.encoding>${encoding}</archetype.encoding> <java.version>1.7</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.llj</groupId> <artifactId>ssm-commons</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.llj</groupId> <artifactId>ssm-dal</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.llj</groupId> <artifactId>ssm-service</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </dependencyManagement> <build> <finalName>ssm</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <encoding>UTF-8</encoding> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.4.1</version> <configuration> <tagBase>${project.artifactId}-${project.version}</tagBase> <autoVersionSubmodules>true</autoVersionSubmodules> <scmCommentPrefix /> </configuration> </plugin> </plugins> </build> </project>
(2)ssm-commons的pom.xml如下
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.llj</groupId> <artifactId>ssm</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>ssm-commons</artifactId> <name>ssm-commons</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- define the project compile level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
(3)ssm-dal的pom.xml如下
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.llj</groupId> <artifactId>ssm</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>ssm-dal</artifactId> <name>ssm-dal</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.llj</groupId> <artifactId>ssm-commons</artifactId> </dependency> </dependencies> <build> <plugins> <!-- define the project compile level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
(4)ssm-service的pom.xml如下
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.llj</groupId> <artifactId>ssm</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>ssm-service</artifactId> <name>ssm-service</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.llj</groupId> <artifactId>ssm-dal</artifactId> </dependency> </dependencies> <build> <plugins> <!-- define the project compile level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
(5)ssm-web的pom.xml如下
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.llj</groupId> <artifactId>ssm</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>ssm-web</artifactId> <packaging>war</packaging> <name>ssm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.llj</groupId> <artifactId>ssm-service</artifactId> </dependency> </dependencies> <build> <finalName>ssm-web</finalName> <plugins> <!-- define the project compile level --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>
14. 更新整个maven工程,右键父工程ssm-->Maven-->Update Project。
15. 打包和发布
(1)右键父工程名ssm-->Run As-->Maven Install,控制台看到下图即为成功
(2)打包web子工程,右键ssm-web -->Run As -->Maven Build -->Goals:clean package -->Run
控制台看到下图,则表示打包成功
(3)右键父工程名ssm-->Refresh,到web子工程的target目录下可以看到ssm-web.war
(4)将ssm-web.war复制到tomcat的webapps目录下,启动tomcat,浏览器访问http://localost:8080/ssm-web,可以看到web的主页呈现的内容。
(5)查看webapps目录下的文件,可以发现多了一个ssm-web的文件夹,这是tomcat自动解压ssm-web.war后生成的。
(6)进入ssm-web/WEB-INF/lib目录,可以见到ssm-web引用的 jar 包。
至此,Eclipse创建maven多模块工程结束!