【MAVEN】如何在Eclipse中建立MAVEN項目

目錄結構:html

contents structure [+]

1,MAVEN簡介

MAVEN是一個項目構建工具,參與項目建立、導入jar包、編譯、發佈、測試、打包等過程。它的使用方式有兩種:用戶命令行和可視化界面。用戶命令行就是直接在DOM窗口中輸入指令進行管理,可視化界面好比MAVEN和Eclipse整合。java

2,MAVEN安裝

2.1 下載MAVEN

在安裝MAVEN以前應該把JDK安裝好,關於JDK的安裝和配置能夠參見詳解JDK的安裝和配置。MAVEN和JDK相似,都是壓縮包,下載完成後解壓,配置環境變量便可,APACHE MAVEN下載。在下載以前應該先肯定相應版本的MAVEN須要的JDK版本。MAVEN 3.3+須要JDK1.7及其以上,筆者下載的是MAVEN 3.5,JDK版本是1.8。程序員

下面就是筆者的解壓後MAVEN路徑: D:\Program Files (x86)\EXE\apache-maven-3.5.0 web

2.2 配置環境變量

  • MAVEN_HOME =D:\Program Files (x86)\EXE\apache-maven-3.5.0spring

  • MAVEN_OPTS = -Xms128m -Xmx512m(可選)apache

而後再在path環境變量中追加MAVEN的配置: %MAVEN_HOME%\bin;api

2.3 測試

配置好以後,咱們來到DOM窗口,輸入 mvn -v 。若是出現一些版本信息,那麼MAVEN就是安裝成功了。spring-mvc

3,MAVEN倉庫

3.1 MAVEN倉庫的工做原理

MAVEN給咱們帶來的最大的好處就是管理jar包,MAVEN管理jar包的模式是從遠程倉庫中把jar包下載到本地倉庫中。倉庫能夠理解爲緩存的地址,就是緩存項目須要的jar包,那麼隨着項目的擴大,本地倉庫確定爲愈來愈大。緩存

3.2 修改MAVEN本地倉庫

本地倉庫默認是在 C:\Users\用戶名\.m2\repository 下,爲了節約C盤的空間,咱們將這個倉庫的地址改成: D:\Program Files (x86)\EXE\apache_maven_local_repository 。找打MAVEN的安裝目錄下的 conf/settings.xml 文件。而後咱們在<settings>節點下,加上<localRepository>節點:tomcat

<localRepository>D:/Program Files (x86)/EXE/apache_maven_local_repository</localRepository>

而後再在DOM控制檯中輸入: mvn help:system ,回車後,咱們就能夠看到一些下載信息,等下載結束後,咱們再到 D:\Program Files (x86)\EXE\apache_maven_local_repository目錄下,咱們就能夠看到許多文件了。

3.3 使用阿里雲的Maven倉庫

在牆內開發,下載速度通常比較慢,這時候可使用阿里雲的Maven倉庫.

直接在的 conf/settings.xml。裏面加上阿里雲的映射文件就能夠了。

    <mirror>  
      <id>alimaven</id>  
      <name>aliyun maven</name>  
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
      <mirrorOf>central</mirrorOf>          
    </mirror> 

4,Eclipse和MAVEN的整合的配置

在Eclipse上整合MAVEN很是簡單,咱們只須要進行兩個簡單的設置就能夠了。

在Eclicpse的Window->Preferences->Maven->Installations下面,咱們將maven添加進來。

在Eclispe的Window->Preferences->Maven->User Settings中,咱們將User Settings選項調換到MAVEN安裝目錄下的settings.xml文件夾。若是讀者的setting.xml文件,也配置了 <localRepository></localRepository> 節點,那麼能夠看到Local Responsitoy的值就是 <localRepository> 節點下面的值。若是沒有配置 <localRepository></localRepository>,那麼Local Responsitory的值就是 C:\Users\用戶名\.m2\repository

就設置這兩個地方,而後就能夠在Eclispe中建立MAVEN項目了。

5,Eclipse上建立MAVEN項目

咱們在Eclipse菜單欄中點擊File->New->Other->Maven,在彈出的對話框中會看到,以下圖所示:

點擊Maven Project,而後能夠看到:

勾選create a simple project(skip archetype selection),點擊next>後,咱們能夠看到:

這裏有幾個參數Group Id、Artifact Id、Version、Packaging。其中Group Id表示組的id,在一些大型的分組開發中會使用。Artifact Id就是之前項目名。Version表明版本。Packaging有三個值jar、pom和war,其中jar表明普通java項目,war表明web項目,pom用於集合MAVEN組件的時候使用的。

5.1 Eclispe中使用Maven搭建Spring MVC項目

下面咱們使用Maven構建一個Spring MVC,咱們選擇Packaging爲war,而後點擊Finish。

src/main/java 裏面是存儲的java代碼的地方

src/main/resources 是存儲配置文件的地方

src/test/java 是測試java代碼的地方

src/test/resources 是測試配置文件的地方

須要說明一些,這些文件都是是Eclipse分配給咱們的可視化界面,是爲了方便咱們分類的。這是否是包!在tomcat中沒有上面的這些的文件夾的。

新建好的web項目下面是沒有web.xml的,須要在右擊Deploymeny Descriptor,而後點擊Generate Deployment Descriptor,生成web.xml文件。

Maven最大的好處就是自動管理相關的jar包,我在這裏是搭建Spring webmvc框架,那麼咱們只須要打開pom.xml文件,而後在搜索spring-webmvc

而後選擇一個版本的Spring-webmvc。保存後,Eclipse就會開始下載相關的jar包了。若是Eclispe沒有下載,那麼能夠右擊項目,而後run->Maven install。

進行下載相關的依賴包。若是在Libraries下出現Maven Dependencies包。

若是報出錯誤:  The superclass " javax.servlet.http.HttpServlet" was not found on the java build path. ,那麼有兩種解決方法,第一種就和上面導入Spring-webmvc的方式同樣,直接在輸入框中搜索servlet-api,而後選擇一個版本的。不過這種方式可能會引發導入的servlet-api.jar和原來的Tomcat不兼容,這個問題最好是從本地tomcat中添加,經過build path把本地的servlet-api.jar添加進來。

到這裏位置,一個簡單的SpringMVC所須要的全部jar包就搞定了。而後咱們像往常同樣寫代碼和配置就能夠了。

項目總結構:

HelloController.java 文件

package cn.test.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @RequestMapping(value="/hello.do")
    public String hello(Model model){
        model.addAttribute("helloinfo", "HELLO WORLD");
        return "hello";
    }
}
HelloController.java

applicationContext.xml文件

<?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:jdbc="http://www.springframework.org/schema/jdbc"  
    xmlns:jee="http://www.springframework.org/schema/jee" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
    http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd
    http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
    http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
    
    <context:component-scan base-package="cn"></context:component-scan>
    
    <mvc:annotation-driven></mvc:annotation-driven>
    
    <bean id="viewResolver"    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
            <value>org.springframework.web.servlet.view.InternalResourceView</value>
        </property>
        <!--jsp存放的目錄-->
        <property name="prefix">
            <value></value>
        </property>
        <!--jsp文件的後綴-->
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
    
</beans>
applicationContext.xml

web.xml文件

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>mavenSpringMVC</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>dispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </init-param>      
  </servlet>
  <servlet-mapping>
      <servlet-name>dispatcherServlet</servlet-name>
      <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  
</web-app>
web.xml

hello.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${helloinfo}
</body>
</html>
hello.jsp

welcome.html文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="hello.do">hello</a>
</body>
</html>
welcome.html

運行welcome.html文件後,打開鏈接就能夠看到以下的界面:

到這裏表示咱們數據請求就成功了。目前一個使用MAVEN管理的SpringMVC項目就完成了。Maven最主要的一個功能就是管理jar包,若是程序員手動導入jar包,頗有可能就會遇到版本不兼容,報一大堆錯,像這種各類jar包版本不兼容的問題是比較頭疼的。Maven就使程序猿從中解放出來了,使得無需關係jar的版本問題。

6,Eclipse中使用MAVEN管理的Web分佈式開發

在上面第5點,筆者介紹瞭如何利用Maven建立Web項目。Maven除了管理jar很是方便,它在模塊開發方面也強大。徹底支持開閉原則(對擴展開發,對修改關閉)。下面筆者就來介紹一下在Eclipse中使用Maven管理的web分佈式開發。

關於建立Maven項目的細節,筆者就不在這裏贅述了,能夠參見上面第5點。

1,建立父模塊(Project)

其實這裏的父模塊指的就是一種Maven項目,在上面建立MAVEN項目時候說了,jar、war和pom的區別,若是咱們須要使用Maven進行模塊開發,那麼packaging的類型就須要指定爲pom。

 

2,建立模塊(Module)

 上面建立的父模塊能夠關聯多個子模塊,這裏爲了舉例就只建立兩個子模塊(model1和model2)。在new->other->Maven中選中Maven Module,

創建的Module名稱爲model1,關聯的父模塊的packaging的類型必須是pom。

這裏演示的是web分佈式開發,因此Packaging選擇了war。第二個model2同理第一個model1,到這裏爲止咱們就完成了一個簡單分佈式web開發部署了。若是在model1或是model2裏面編譯程序,那麼結果會當即同步到manager中去,所以能夠在manager中對model1和model2進行分佈式管理。

三着在項目中的結構:

咱們能夠看出在項父塊中,有對兩個子模塊的關聯。

 

到這裏關於Eclipse中進行MAVEN開發部署就講解完了,若是讀者以爲還不錯,請點個贊。

相關文章
相關標籤/搜索