使用maven建立web專案demo
對於初學者而言,第一次使用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>