在 MyEclipse 中使用 Maven3 開發

環境:

JDK1.7、Maven3.3.9、MyEclipse for Spring 2014

1、Maven下載、安裝

Maven是基於項目對象模型(Project Object Model),可以通過一小段描述信息來管理項目的構建、報告和文檔的項目管理工具,提供了一個倉庫的概念,統一管理項目所依賴的第三方jar包,最大可能避免了由於環境變量的不同在不同電腦之間無法運行的問題,Struts2、Hibernate都是採用maven部署的項目。Maven曾是Jakarta項目的子項目,現爲由Apache軟件基金會主持的獨立Apache項目,下載地址是:Apache Maven 。注意:Maven 3.3 要求JDK 最低 1.7。

將壓縮包解壓到任意目錄,即可看到以下目錄:

這裏寫圖片描述

修改本地倉庫路徑
maven倉庫默認是放在用戶目錄的.m2隱藏目錄下的(Default: ${user.home}/.m2/repository),Windows系統就是C:\Users\用戶名\.m2;打開%M2_HOME%/conf/setting.xml文件,找到<localRepository>標籤,將其提取到註釋外面,並將其更改爲:<localRepository>E:/maven/Repository</localRepository>

配置環境變量

這裏寫圖片描述

驗證
在命令行輸入 mvn -version , 看到如下類似信息,表明 Maven 在 Windows 上安裝成功。

C:\Users>mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: D:\development\apache-maven-3.3.9
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: D:\development\Java\jdk1.7.0_67\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

2、MyEclipse 中集成 Maven

MyEclipse默認安裝了maven插件,極大簡化了操作。在使用MyEclipse創建項目之前需要進行如下的配置:
1 Window –> Preferences –> MyEclipse –> Maven4MyEclipse –>Installations;

添加本地安裝的Maven(自帶的可能有錯)並選中
這裏寫圖片描述

2 點擊User Settings,改爲%M2_HOME%/conf/settings.xml,點擊ok。

這裏寫圖片描述

3、在 MyEclipse 使用 Maven 構建 Java 項目

File –> New –> Other, 輸入maven,選中 Maven Project

這裏寫圖片描述

Next

這裏寫圖片描述

Next

這裏寫圖片描述

Next

這裏寫圖片描述

填寫必要信息 –> Finish,等待 MyEclipse 創建 Java 項目,項目結構如下:

這裏寫圖片描述

4、在 MyEclipse 使用 Maven 構建 Web 項目

File –> New –> Other, 輸入maven,選中 Maven Project

這裏寫圖片描述

Next

這裏寫圖片描述

Next

這裏寫圖片描述

輸入webapp,選擇maven-archetype-webapp創建一個webapp目錄結構的項目,Next

這裏寫圖片描述

填Group Id,Artifact Id,和Package,點擊 Finish

這裏寫圖片描述

稍等片刻,等待MyEclipse創建項目

這裏寫圖片描述

創建的項目結構結構如下:

這裏寫圖片描述

添加Source Folder (src/main/java,src/main/resources,src/test/java,src/test/resources)

右鍵項目 –> New –> Source Folder 填寫src/main/java(報錯)

這裏寫圖片描述

右鍵項目 –> Build Path –> New Source Folder 填寫src/main/java,點擊Finish

這裏寫圖片描述

添加後test目錄自動添加

這裏寫圖片描述

添加src/test/resources 右鍵項目 –> New –> Source Folder 填寫src/test/resources

這裏寫圖片描述

項目結構如下:

1. src/mian/java 該目錄下存放項目的java文件
2. src/mian/resources該目錄下存放項目的資源文件(如spring的xml等)
3. src/test/java 該目錄下存放項目測試用的java文件
4. src/test/resources該目錄下存放項目測試用的資源文件

這裏寫圖片描述

右鍵項目 –> Build Path –> Configure Build Path… 點擊 Source Tab頁,每一項的 Output folder (雙擊即可修改)

這裏寫圖片描述

這裏寫圖片描述

確認 web 項目的輸出信息 右鍵項目 –> Properties –> MyEclipse –> Project Facets

這裏寫圖片描述

設置部署程序集 右鍵項目 –> Properties –> MyEclipse –> Deployment Assembly

這裏寫圖片描述

此處列表是,部署項目時,文件發佈的路徑。
1. 我們刪除 test / m2e-jee 三項,因爲 test 是測試使用,並不需要部署
2. 設置將 Maven 的 jar 包發佈到 lib 下

這裏寫圖片描述

編寫 Web 的測試代碼:

HelloWorldServlet.java

package webapp;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class HelloServlet extends HttpServlet {
    @Override
    public void service(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        resp.setContentType("text/plain;charset=utf-8");
        resp.getWriter().write("Hello World");
    }
}

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<body>
<h2>Hello World!</h2>
<a href="hello">HelloServlet</a>
</body>
</html>

web.xml

<!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>
  <servlet>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>webapp.HelloServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

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.test.maven</groupId>
  <artifactId>webapp</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <!-- 
         test:僅測試時有效。 
       -->
      <scope>test</scope>
    </dependency>

     <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <!-- 
            provided:編譯,測試都有效,但是在運行時並不會加入。例如Servlet API,因爲Web容器本身有,如果加入就會出現衝突。
         -->
        <scope>provided</scope>
    </dependency>
  </dependencies>
</project>

這裏寫圖片描述

將項目部署到 tomcat 中,啓動測試

這裏寫圖片描述

這裏寫圖片描述

注:

1 給jre添加一個運行時參數 -Dmaven.multiModuleProjectDirectory=$M2_HOME

(錯誤 -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match. 的解決方案)

這裏寫圖片描述

2 關鍵詞:
GroupId:一般是公司名或組織名 + 項目名稱
ArtifactId:一般是project名(模塊名)
Version:版本號
Package:包名

Maven座標:groupId:artifactId:packaging:version
groupId
團體,公司,小組,組織,項目,或者其它團體。團體標識的約定是,它以創建這個項目的組織名稱的逆向域名(reverse domain name)開頭。
來自Sonatype的項目有一個以com.sonatype開頭的groupId,而Apache Software的項目有以org.apache開頭的groupId。
artifactId
在groupId下的表示一個單獨項目的唯一標識符。(即eclipse的項目名稱)
packaging
項目的類型,默認是jar,描述了項目打包後的輸出。類型爲jar的項目產生一個JAR文件,類型爲war的項目產生一個web應用。
version
一個項目的特定版本。發佈的項目有一個固定的版本標識來指向該項目的某一個特定的版本。而正在開發中的項目可以用一個特殊的標識,
這種標識給版本加上一個“SNAPSHOT”的標記。

官方說明:Guide to naming conventions on groupId, artifactId and version

參考

發佈了30 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章