maven入門

Maven入門教程

1.1.介紹、環境配置

1.1.1.Maven介紹

Maven是一個采用純Java編寫的開源項目管理工具, Maven采用了一種被稱之為Project Object Model (POM)概念來管理項目,所有的項目配置信息都被定義在一個叫做POM.xml的文件中,通過該文件Maven可以管理項目的整個生命周期,包括清除、編譯,測試,報告、打包、部署等等。目前Apache下絕大多數項目都已經采用Maven進行管理.而Maven本身還支持多種插件,可以方便更靈活的控制項目,開發人員的主要任務應該是關注商業邏輯并去實現它,而不是把時間浪費在學習如何在不同的環境中去依賴jar包,項目部署等。Maven正是為了將開發人員從這些任務中解脫出來而誕生的

1.1.2.Maven能夠做什么

lJar的聲明式依賴性管理

l項目自動構建

1.1.3.環境配置

lhttp://maven.apache.org/download.html下載最新版本Maven3.0.2(Binaryzip)

l解壓到D(本身就是綠色版不需要安裝):

l配置環境變量(配置之前,必須確定配置了JDK環境變量)

MAVEN_HOME : D:\apache-maven-3.0.2

把此命令添加到Path中:%MAVEN_HOME%\bin\

l配置用戶范圍的settings.xml

MAVEN_HOME/conf/settings.xml全局的

~/.m2/settings.xml單個用戶的

l驗證安裝是否成功

在命令行上輸入: mvn

-version;回車,如看到下面信息表示安裝成功

1.1.4.Maven目錄分析

lbin:含有mvn運行的腳本

lboot:含有plexus-classworlds類加載器框架

lconf:含有settings.xml配置文件

llib:含有Maven運行時所需要的java類庫

lSettings.xml中默認的用戶庫:

${user.home}/.m2/repository[A1]

lMaven默認倉庫下載地址在: maven的lib目錄下maven-model-builder-3.0.4.jar的pom.xml中

1.2.第一個Maven演示

1.2.1.創建目錄結構

Convention Over

Configuration (約定優于配置)。在現實生活中,有很多常識性的東西,地球人都知道。比如說:如何過馬路(紅燈停綠燈行),如何開門,關門等。對于這些事情,人們已經有了默認的約定,在軟件開發過程中,道理也是類似的,如果我們事先約定好所有項目的目錄結構,標準開發過程(編譯,測試) ,所有人都遵循這個約定。軟件項目的管理就會變得簡單很多。在現在流行的很多框架中,都使用了這個概念

Hello

--src

-----main

----------java--用來存放Java文件

----------resources--用來存放資源文件

-----test

---------java--用來存放測試的Java文件

---------resources

--target--項目輸出位置,編譯完畢后自動生成

--pom.xml--項目對象模型的描述,它是maven配置的核心

1.2.2.建立pom.xml

"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/xsd/maven-4.0.0.xsd">


4.0.0


cn.itcast.maven


Hello


0.0.1-SNAPSHOT




junit


junit


4.9


test

pom.xml文件是maven對一個項目的核心配置,這個文件將包含你希望如何構建項目的大多數配置信息。POM大而復雜,但你不用全部去了解,只要使用一些常用的配置就可以了

1.2.3.創建Java類與測試類

l在src/main/java/cn/itcast/maven目錄下新建文件Hello.java

packagecn.itcast.maven;

publicclassHello {

publicString sayHello(String

name){

return"Hello "+name+"!";

}

}

l在/src/test/java/cn/itcast/maven目錄下新建測試文件HelloTest.java

package cn.itcast.maven;

import org.junit.Test;

import static junit.framework.Assert.*;

public class HelloTest {

@Test

public? void testHello(){

Hello? hello = new Hello();

String? results = hello.sayHello("litingwei");

assertEquals("Hello? litingwei!",results);

}

}

1.2.4.命令測試

打開cmd命令行,進入Hello項目根目錄執行mvn compile命令,查看根目錄變化

cmd中繼續錄入mvn clean命令,然后再次查看根目錄變化

cmd中錄入mvn clean compile命令,查看根目錄變化

cmd中錄入mvn clean test命令,查看根目錄變化

cmd中錄入mvn clean package命令,查看根目錄變化

1.3.Maven核心概念

1.3.1.Maven插件

Maven的核心僅僅定義了抽象的生命周期,具體的任務都是交由插件完成的每個插件都能實現多個功能,每個功能就是一個插件目標

Maven的生命周期與插件目標相互綁定,以完成某個具體的構建任務, Maven的插件在:.m2\repository\org\apache\maven\plugins

1.3.2.Maven坐標

類似在平面幾何中坐標(x,y)可以標識平面中唯一的一點,

Maven世界擁有大量構建,我們需要找一個用來唯一標識一個構建的統一規范

擁有了統一規范,就可以把查找工作交給機器

lgroupId:定義當前Maven項目隸屬項目(實際對應JAVA的包的結構,是main目錄里java的目錄結構)

lartifactId:定義實際項目中的一個模塊(項目的唯一的標識符,實際對應項目的名稱,就是項目根目錄的名稱)

lversion:定義當前項目的當前版本

1.3.3.Maven倉庫

l何為Maven倉庫:用來統一存儲所有Maven共享構建的位置就是倉庫

lMaven配置jar包的路徑為:groupId/artifactId/version/artifactId-version

l本地倉庫(~/.m2/repository/):每個用戶只有一個本地倉庫

l中央倉庫(Maven默認的遠程倉庫):Maven默認的遠程倉庫下載地址為:http://repo1.maven.org/maven2

l私服:是一種特殊的遠程倉庫,它是架設在局域網內的倉庫,主要是為了團隊協作開發

l鏡像:用來替代中央倉庫,速度一般比中央倉庫快

1.3.4.生命周期

1.4.第二個Maven演示

1.4.1.HelloFriend目錄結構

HelloFriend

--src

-----main

----------java

----------resources

-----test

---------java

---------resources

--pom.xml

1.4.2.建立Pom.xml

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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

cn.itcast.maven

HelloFriend

1.0.0

jar

junit

junit

4.9

test

cn.itcast.maven

Hello

1.0.0

compile

1.4.3.創建Java類與測試類

l在src/main/java/cn/itcast/maven目錄下新建文件HelloFriend.java

packagecn.itcast.maven;

publicclassHelloFriend{

publicString sayHello(String

name){

return"Hello "+name+"!";

}

}

l在/src/test/java/cn/itcast/maven目錄下新建測試文件HelloFriendTest.java

packagecn.itcast.maven;

importorg.junit.Test;

importcn.itcast.maven.Hello;

publicclassHelloFriendTest{

@Test

publicvoidtesHelloFriend(){

HelloFriendhelloFriend =newHelloFriend();

String results = helloFriend.sayHelloToFriend("litingwei");

System.out.println(results);

}

}

1.4.4.命令測試

l在HelloFriend目錄下執行mvn clean mvn compile mvn test都正常

l在HelloFriend目錄下執行命令mvn

package系統報錯說沒有找到依賴,因為HelloFriend依賴Hello模塊,但是此模塊在個人倉庫和中央倉庫中并不存在

l需要重新構建Hello第一個項目并安裝到數據倉庫,在Hello根目錄下執行mvn clean install,就會部署的中央倉庫中

1.5.Maven與Eclipse整合

1.5.1.配置maven插件

1.5.2.user settings

1.6.Maven部署到Tomcat中

1.6.1.創建Java項目

l在MyEclipse創建項目的時候選擇Maven Project

l在構件向導的時候選擇quickstart注意,此向導也是插件,第一次使用的時候.也要從遠程倉庫中下載相應的jar包,因此需要網絡環境

l設置當前模塊的坐標,和相應的版本號

l創建完畢后默認生成的項目包目錄如下

l通過在pom.xml中配置相應Hello.jar即可

"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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0


Hello3

Hello3

0.0.1-SNAPSHOT

jar


Hello3

http://maven.apache.org


UTF-8



junit

junit

4.9

test


cn.itcast.maven

Hello

0.0.1-SNAPSHOT

compile

l通過在pom.xml中單擊右鍵選擇相應的命令即可

1.6.2.創建Web項目

l選擇創建一個普通的web工程

l設置相應的坐標

l如果采用src缺省的包結構,則pom.xm中需要指定編譯和調試的目錄.

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/xsd/maven-4.0.0.xsd">

4.0.0


web

web

0.0.1-SNAPSHOT

war


UTF-8

1.2

1.6



javax.servlet

jstl

${jstl.version}

provided

javax.servlet.jsp

jsp-api

2.1

provided


cn.itcast.maven

Hello

0.0.1-SNAPSHOT

compile



${basedir}/src

${basedir}/WebRoot/WEB-INF/classes


${basedir}/src

**/*.java


maven-war-plugin

${basedir}/WebRoot

${basedir}/WebRoot

maven-compiler-plugin

${compiler.version}

${compiler.version}

l在index.jsp頁面中添加如下代碼

<%//要導入相應: cn.itcast.maven.*

Hello? hello=newHello();

out.println(hello.sayHello("admin"));

%>

通過maven下載的jar包都會存儲到指定的個人倉庫中

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 一、MAVEN能做什么? 清理項目 mvn clean 編譯項目 mvn compiler 測試項目 mvn...
    sunshine9223閱讀 749評論 1 3
  • Maven這個個項目管理和構建自動化工具,越來越多的開發人員使用它來管理項目中的jar包。接下來小寶鴿,將從下面幾...
    便于塵埃閱讀 370評論 0 0
  • 一、安裝 首先maven的配置安裝非常簡單:將下載下來的壓縮包解壓之后將bin目錄的路徑加入到path環境變量下即...
    yjaal閱讀 1,122評論 1 8
  • 導語 最近在學習Java了,以后分享的文章主要就以Java為主了,偶爾也會分享一下Objective-C方面的文章...
    國士無雙A閱讀 11,789評論 0 24