今天閒來沒事採用maven集成一個SSM框架來複習複習,下面開始個人複習之旅,慢慢來,不着急,哈哈,不忙時候敲兩下,整起來。html
工具爲Eclipse,首先須要創建一個maven工程,file右鍵new--->maven Projectjava
點擊nextweb
選中紅色框部分,繼續nextredis
填寫完成後點擊finish,建立項目以下:可是有兩個問題須要解決,apache
問題1.項目報錯,錯誤出在index.jsp上,這個錯誤的緣由在於項目中沒有servelet-api,須要在pox.xml中添加相應的依賴便可解決:api
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>java-web
問題2.java resources 下的目錄不完整,這個須要補充完整,補充方法以下;網絡
方式一;app
在項目名上右鍵,build path----->configure build path(或者項目右鍵Properties,選擇java build path)出現的以下界面:框架
將兩個報錯的missing刪除remove掉,而後add folder,點擊Create New Folder,選擇項目根目錄,出現以下最上層界面,以下:
在Folder name 中填寫src/main/java,而後finish,一樣方法建立src/test/java,可是這種方法發現建立src/test/java文件夾後報錯以下,且OK鍵爲灰色不可以點擊,故而不能建立成功
方式二:java resources上右鍵new一個Source Folder以下建立相應包名,
建立完成後
無論方式1、仍是方式二建立成功後都須要爲期配置改變編譯環境,以下點擊OK便可,須要注意的是src/main/java選擇的是項目名/target/classes,而src/test/java和src/test/resources(本項目不建這個包)選擇的是項目名/target/test-classes。
修改順序—經過order and export 的up鍵,src/main/java...src/main/resources...src/test/java
將Libraries,已入要用的JRE,方法以下,改變後以下:注意,咱們在操做這一步的時候,常常會發現當咱們引進了jre1.7,可是在maven項目右鍵update後,系統又從新回到了JRE System Library[JavaSE-1.5],這是由於須要在pom.xml 的build中增長插件配置以下:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
添加完成再次操做後update便可變爲以下樣式:
此時若是index.jsp報錯以下:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path,則更新一下maven工程。
改變版本問題:修改web.xml的DTD頭文件變成3.0版本——>工程名上右鍵屬性——>project Facets——>修改Dynamic Web Module 2.3 爲3.0,注意!!!此時會報錯,以下:
這樣老是不能修改,把√去掉保存,發現項目結構變得不堪,又從新來過,好痛苦,折騰了好大一會,最後查看網絡,搞定
===============================================如下摘自網絡=====================================================
參考http://www.cnblogs.com/bruceChan0018/p/6015119.html(尊重原創,多謝了,借鑑一下,以下一部分摘過來)
1.調整項目的web.xml,將版本號統一修改成2.5/3.0
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
......
2.切換視圖爲Navigator(Eclipse-Window-showView)
org.eclipse.jdt.core.prefs中,將jdk版本改成當前系統的jdk版本號
eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.wst.common.component中,將jdk版本改成當前系統的jdk版本號
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.7.0"> <wb-module deploy-name="ChiqAlgTest"> <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/> ......
org.eclipse.wst.common.project.facet.core.xml中,將jdk和java-web版本修改成系統jdk和2.5/3.0
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="1.7"/> <installed facet="jst.web" version="3.0"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>
3.修改完以上參數後,在facet選項中修改Dynamic Web Module爲2.5/3.0,update project便可。
================================================以上摘自網絡============================================================
更新完後以下:
若是最終,發現項目名字上報錯有紅叉,子文件中沒有任何報錯錯則是缺乏插件。
<plugins> <plugin> <!-- 項目報紅叉,下面子文件沒有一個報紅叉緣由是缺乏插件的配置項 -->
<artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.7</target> <source>1.7</source> <encoding>UTF-8</encoding> </configuration> </plugin>
</plugins>
2、部署jetty試運行maven項目工程
首先,在pom.xml中加入jetty的插件
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
</plugin>
而後進行配置菜單run---->run configuration----->出現以下
若是此時run 啓動jetty service,並運行localhost:8080,會報錯以下:
PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
此時是由於JRE沒有配置,須要進行相關配置:
配置好後,OK,run 啓動jetty service,並運行localhost:8080,頁面輸出hello world。
對應的pom.xml代碼以下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yusys.pro</groupId>
<artifactId>NewsManagement</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>NewsManagement 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>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 添加redis的jar 包 -->
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
</dependencies>
<build>
<plugins> <plugin> <!-- 項目報紅叉,下面子文件沒有一個報紅叉緣由是缺乏插件的配置項 -->
<artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.7</target> <source>1.7</source> <encoding>UTF-8</encoding> </configuration>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.16.v20140903</version>
</plugin>
</plugins>
<finalName>NewsManagement</finalName>
</build>
</project>
對應的web.xml代碼以下:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 3.0//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app> <display-name>Archetype Created Web Application</display-name></web-app>