对于初学者而言,第一次使用maven最大的感慨就是:很好的一款项目构建工具,管理jar包太方便了,不用需要什么jar包亲自去官网上下载,只要配置好私服和本地仓库,需要什么jar包直接引入,maven自动从私服下载到本地仓库。
废话不多说,直接图文演示如何用maven构建web项目:
1. 新建maven项目
1)File——>New——>Other…
2)Wizards:下文本框输入maven——>maven project——>next——>next
3)选择maven-artchetype-webapp——>next
4)GroupId:团体、公司、小组、组织、项目、或者其它团体。如contentSearch-web,contentSearch-dal,contentSearch-biz同属一个groupId。
ArtifactId:在 groupId 下的表示一个单独项目的唯一标识符。项目名称ID 。
填好GroupId和ArtifactId,点击finish,OK。新建项目完成。
2. 修改项目配置
1)打开所建的项目,工程目录是不对的:
工程名springmvc右击——>Properties——>Java build path,将jdk的版本修改为workspace的版本。
选择Java Compiler——>修改编译jdk版本。然后点击ok。
2)修改项目配置文件:
Windows——>showview——>navigator:
展开springmvc项目,修改.settings配置文件
修改org.eclipse.wst.common.component:
原来:
改为:<?xml version="1.0" encoding="UTF-8"?> <project-modules id="moduleCoreId" project-version="<strong><span style="color:#FF0000;">1.5.0</span></strong>"> <wb-module deploy-name="springdemo"> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <property name="context-root" value="springdemo"/> <property name="java-output-path" value="/springdemo/target/classes"/> </wb-module> </project-modules>
修改org.eclipse.wst.common.project.facet.core.xml:<?xml version="1.0" encoding="UTF-8"?> <project-modules id="moduleCoreId" project-version="<strong><span style="color:#FF0000;">1.6.0</span></strong>"> <wb-module deploy-name="springdemo"> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <property name="context-root" value="springdemo"/> <property name="java-output-path" value="/springdemo/target/classes"/> </wb-module> </project-modules>
原来:
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="<span style="color:#FF0000;"><strong>1.5</strong></span>"/> <installed facet="jst.web" version="<strong><span style="color:#FF0000;">2.3</span></strong>"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="jst.jaxrs" version="1.1"/> <installed facet="jst.jsf" version="2.0"/> </faceted-project>
改为:
3)修改web.xml配置:<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="<strong><span style="color:#FF0000;">1.6</span></strong>"/> <installed facet="jst.web" version="<strong><span style="color:#FF0000;">2.5</span></strong>"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="jst.jaxrs" version="1.1"/> <installed facet="jst.jsf" version="2.0"/> </faceted-project>
原来:
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> </web-app>
改为:
4)加入java ee包:<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>Archetype Created Web Application</display-name> </web-app>
pom.xml文件的<dependencies>标签引入下面代码:
<!-- 导入java ee jar 包 --> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>6.0</version> </dependency>
注意:eclipse的jdk是什么版本的,就加什么版本,否则运行程序会有jdk版本不一致的错误!!! 5)工程名springmvc右击——>Maven——>Update Project…,你会发现工程没有错误了,但是jdk的版本又变回1.5了。如图:
Reason:我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,所以才会有这些问题。我们可以在pom.xml的<build>标签中配置maven编译插件的版本。最后,再update project一下,一切都会正常。<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins>