1. 程式人生 > >MyEclipse+Maven+Tomcat搭建環境和專案配置

MyEclipse+Maven+Tomcat搭建環境和專案配置

0. 緒言

Java Web開發中,除了基礎知識外,開發環境搭建,也是一項基本功。開發環境包括了IDE、專案管理、專案架構組織、依賴管理等等,以及簡單的測試。能夠熟練的搭建出Java Web的開發環境,也能夠提現開發者Java Web的開發功底,如Maven依賴管理的使用,專案組織結構的清晰程度,都能體現開發者素質。

環境搭建過程比較簡單,但是基於Maven的Java Web專案,在MyEclipse這個IDE下建立時,需要做一些自主的調整。

1. 環境引數

MyEclipse

MyEclipse Spring 2014 GA (很多人不懂GA,General Availability,正式釋出的版本),Spring版本增加了Spring外掛,裝標準版、Pro版也可以。如果沒有必要,就不用裝blue版本和bling了。

其他

JDK 1.7
Maven 3.3.3
Tomcat 8

2. 安裝

配置Java開發環境

下載安裝JDK 1.7,JRE 7
配置環境變數:
(1)新建 JAVA_HOME
D:\Java\jdk1.7.0_17
(2)新建JAVA_CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
(3)新增Path
.;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
注意了,JRE環境變數慎重新增,小心Tomcat啟動錯誤。

Maven

下載,解壓到常用目錄,儘量簡潔的路徑。
我的路徑:D:\apache-maven-3.3.3

安裝MyEclipse

下載標準版,或者Spring版本,選擇穩定的,我用的是2014版本,之前一直用2010版本,都挺好用的。
安裝完成即可。

Tomcat

下載,解壓到常用目錄,儘量簡潔的路徑。
我的路徑:D:\apache-tomcat-8.0.23

3. MyEclipse的Maven配置

啟動MyEclipse,配置Maven:Window -> Preferences -> MyEclipse -> Maven4MyEclipse
所有的配置都在此處完成。

新增Maven

配置JDK:


Maven配置JDK.png


Installations中:


新增Maven.png


通過Add,新增自己的Maven,配置檔案會自動識別獲取到。
User Settings中:


配置引數檔案.png


完成配置後即可使用。

Tomcat配置

Window -> Preferences -> MyEclipse -> Servers -> Tomcat


Tomcat配置.png

選擇Tomcat主目錄:


Tomcat配置引數.png


完成配置。

4. Java Web on Maven專案建立

Java Web on Maven專案,有兩種方式建立,與IntelliJ IDEA不同,MyEclipse預設並不是基於Maven進行專案管理的,而是使用自己的專案管理方式。因此,此處有兩種方式建立專案:
·建立一個Java Web Project,引入Maven(推薦,快捷)
·建立一個Maven Project,引入J2EE

建立一個Java Web Project 並 引入 Maven

Java Web提供了Java Web所需要的各類檔案和檔案目錄,但是並沒有提供Maven,所以需要進行適當的引入。

這種方式建立的專案,有著Maven的結構,採用Maven管理包,但實質上是一個Java Web專案。不過從本實際效果看,和第二種方法是一致的。

新建Java Web專案

新建Java Web專案.png


進入嚮導:


建立專案.png


Next... Next....


選擇新增web.xml.png


Next...


目錄結構選擇.png


推薦選擇標準Maven專案結構,圖中雖然是選在第一個,但是實際上選了第二個,不再重複截圖了。


建立完成.png


最終建立成功,專案結構如圖:


Java Web 專案引入Maven管理.png

建立一個 Maven Project 並 引入J2EE

這種方式建立的專案,是一個Maven專案,增加了對Java Web的相關支援,補充了各類配置引數檔案和目錄。與前一種方法所達到的效果是相同的。

通過建立Maven專案,然後將J2EE引入到專案中,新增必要的目錄結構等。
新建專案:


新建Maven專案.png


使用filter篩選:


選擇Maven.png


需要選擇一個archetype:輸入webapp篩選,可能一開始沒有加載出來,稍微等等:


沒加載出來的.png
MyEclipse玩命的在處理.png
archetype載入成功.png


如圖,選擇webapp-javaee的6或者7,此處選擇7,Next...


Maven引數.png


Finish完成專案建立。
完成建立專案如圖:


專案結構.png


裡面有個錯誤,新建專案就有錯誤,有意思:
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-dependency-plugin:2.6:copy (execution: default, phase: validate)
說是有個plugin有問題:


maven-dependency-plugin問題.png


解決辦法是給這個plugin單獨包一下:

<build>
    <pluginManagement>
        <plugins>
            <plugin> ... </plugin>
            <plugin> ... </plugin>
                  ....
        </plugins>
    </pluginManagement>
</build>

使用子專案新增方式,解決問題.png


錯誤解決了,Maven專案建立成功。

從前面專案結構圖中,可以看到,Maven專案具有的特徵目錄結構與在Java Web專案基礎上引入Maven包管理基本一致,但還是有比較多的細節差別,下面將一一補充。

補充目錄

補充
src/main/resources
src/main/webapp/WEB-INF
src/main/webapp/WEB-INF/classes
src/main/webapp/META-INF
src/test/resources
src/test/webapp


補充後的目錄結構.png


目錄增加後,跟build path設定:


選擇配置.png


增加對應的目錄,如果你之前不是增加的sources folder:


增加源目錄.png


配置輸出目錄:


配置輸出目錄.png


最終結果:


配置結果.png


此時基本上就配置完成了。

5. 專案其他配置

參考網上大牛們的經驗,有如下一些經驗配置,感謝各位大牛提供的寶貴經驗,在此不一一列舉。

常用包pom配置
spring包
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.1.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
servlet
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
資料相關操作

資料庫操作,MySQL、iBatis

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.37</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>${mybatis-spring-version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>${mybatis-version}</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.2</version>
    </dependency>

資料來源配置

    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.1</version>
    </dependency>

json操作

    <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>fastjson</artifactId>
       <version>1.2.1</version>
    </dependency>
測試包
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>4.1.1.RELEASE</version>
        <scope>test</scope>
    </dependency>
日誌包
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j-version}</version>
    </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-version}</version>
    </dependency>
其他
    <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <version>3.3</version>
    </dependency>
web.xml

web.xml配置中,一些比較常見的配置。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Maven4JavaWebProjectDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
        <servlet-name>Maven4JavaWebProjectDemo</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Maven4JavaWebProjectDemo</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <session-config>
        <session-timeout>60</session-timeout>
    </session-config>
</web-app>

註冊了一個servlet,是org.springframework.web.servlet.DispatcherServlet前端控制器,同時給這個servlet前端控制器分配了servlet-mapping。此處,給DispatcherServlet分配的對映是/,即所有的請求。同時,此處指定了Spring的DispatcherServlet的配置檔案所在位置:classpath:spring/applicationContext.xml。
跟著網上大牛學習,spring配置:

  <servlet>
        <servlet-name>Maven4JavaWebProjectDemo</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
applicationContext.xml

位於src/main/resources/spring/目錄下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
     <import resource="classpath:spring/applicationContext-mvc.xml" />
</beans>

該配置中,import了外部檔案,用於配置mvc內容,位置與其在相同目錄:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.0.xsd 
       http://www.springframework.org/schema/mvc 
       http://www.springframework.org/schema/mvc/spring-mvc.xsd"
       default-lazy-init="true">
    <context:component-scan base-package="com.hgr.Maven4JavaWebProjectDemo"/>
    <mvc:resources location="/WEB-INF/pages/" mapping="/pages/**"/>
    <!-- 檢視解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!-- 預設的註解對映的支援 -->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/plain;charset=utf-8</value>
                        <value>application/json;charset=utf-8</value>
                        <value>application/x-www-form-urlencoded</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>    
</beans>
專案輸出配置:

WEB輸出配置.png

6. 部署

可以Debug As,也可以Run As:


部署執行.png


選擇之前配置的Server:


選擇Server.png


Tomcat的webapp下部署成功:


檔案目錄.png

測試執行:


執行結果.png

轉載地址:http://www.jianshu.com/p/56caa738506a#