Maven實戰(zhàn)之初識Maven

Maven實戰(zhàn)之初識Maven

Maven的簡單介紹

  1. 作用:Maven主要用于項目的構建歌焦,管理項目的依賴以及項目的信息(自動化構建、編譯砚哆、單元測試独撇、生成文檔、打包、部署)
  2. 優(yōu)勢:相對于Ant纷铣、Make等卵史,Maven抽象構建過程,提供構建任務的實現(xiàn)搜立,自動化構建以躯,有效地提高了開發(fā)效率,使開發(fā)人員可以集中精力在主要的開發(fā)任務上啄踊。而且Maven是跨平臺工具忧设,意味著在主流操作系統(tǒng)中,Maven都提供了對應的技術支持
  3. 使用注意:需要在JDK1.4及以上版本使用

Maven的安裝

下載地址:Maven下載地址 颠通,選擇最新版本的Binary文件即可址晕,這里使用的是最新的apache-maven-3.3.9-bin.zip

Windows平臺安裝

  1. 首先將下載下來的Maven文件解壓到一個文件中

  2. 然后配置環(huán)境變量(該步驟可省略,不過建議配上)

    1. 新建一個名為M2_HOME 的變量顿锰,其值為剛剛解壓縮的maven文件谨垃,這里為E:\Program Files (x86)\apache-maven-3.3.9 如下所示
    1. ;%M2_HOME%/bin; 添加到PATH路徑中,如下所示:

  3. 測試配置結果:

    打開CMD窗口硼控,輸入 mvn -version 如果上面的配置正確刘陶,則可以看到對應的輸出信息,大致如下所示

Linux平臺的配置

Linux平臺的配置跟Windows平臺的配置基本一致淀歇,只是將Maven文件加入Path路徑的方式不同易核,這里就不做具體演示

Maven的簡單配置

為了更好地使用Maven匈织,這里對Maven進行簡單的配置

拷貝settting.xml 文件

在剛剛解壓的Maven文件中浪默,在conf目錄中有一個setting.xml,這是Maven的全局性設置文件缀匕,在該文件中的修改會影響到當前計算機的所有用戶纳决,一般情況下,推薦復制一份到家目錄的的.me文件夾之下乡小,windows的配置路徑為C:\Users\xuhuanfeng\.m2

設置代理

由于某些原因阔加,Maven使用過程中有時會出現(xiàn)無法連接到中央倉庫的情況,這個時候可以嘗試更換倉庫地址满钟,也可以選擇設置代理胜榔,這里使用的是設置代理的方式,設置方式為在<proxies>中增加一個<proxy>湃番,具體如下所示

<proxies>
   <proxy>
      <id>proxy</id><!--代理名稱-->
      <active>true</active><!--選擇該代理-->
      <protocol>http</protocol><!--代理協(xié)議-->
      <host>127.0.0.1</host><!--代理服務器地址-->
      <port>1080</port><!--代理端口-->
   </proxy>
</proxies>

Maven_HelloWorld

搭建完Maven平臺之后夭织,我們就開始我們的Maven學習之旅,首先肯定是久負盛名的HelloWorld項目了

  1. 新建一個文件夾吠撮,命名為HelloWorld作為我們項目的根目錄
  2. 在HelloWorld目錄下編寫一個pom.xml文件尊惰,內(nèi)容如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<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>
      <!--Maven2 / Maven3 固定寫法-->
      <groupId>cn.xuhuanfeng.maven</groupId>
      <!--groupId,可以近似當作公司/組織+項目名-->
      <artifactId>HelloWorld</artifactId>
      <!--artifactId,可以近似看做模塊名稱-->
      <version>1.0-SNAPSHOT</version>
      <!--當前版本號-->
      <name>Maven_HelloWorld</name>
      <!--項目的名稱弄屡,可以省略-->
 </project>   
 
  1. 在 HelloWorld文件中题禀,創(chuàng)建對應的Java類,對應的包路徑為 src/main/java/cn/xuhuanfeng/maven/HelloWorld.java膀捷,內(nèi)容如下
package cn.xuhuanfeng.maven;
/**
*  Maven HelloWorld項目
*/
public class HelloWorld{

    public String  sayHello(){
        return "Maven_HelloWorld";
    }

  1. 使用CMD窗口進入到項目的根目錄迈嘹,也就是HelloWorld目錄下,執(zhí)行mvn clean compile全庸,輸入內(nèi)容如下

從上圖中可以看到江锨,HelloWorld項目已經(jīng)編譯成功了,其中的部分細節(jié)內(nèi)容糕篇,后續(xù)將補上啄育,這里可以暫時先不在意

在HelloWorld目錄中,會自動生成target目錄拌消,其中有一個名為classes文件夾挑豌,編譯好的class文件就存放在這里,類路徑跟包名一一對應,如下所示:

編寫測試用例

這里我們?yōu)镠elloWorld.java編寫對應的單元測試墩崩,并且交給Maven由其進行自動的測試

  1. 引入Junit依賴氓英,在pom.xml文件中,project元素下增加Junit依賴鹦筹,代碼如下:
<dependencies>
 <dependency>
     <!--引入Junit依賴-->
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.7</version>
     <scope>test</scope>
 </dependency>
</dependencies>

  1. 編寫測試類铝阐,在 HelloWorld文件中,創(chuàng)建對應的Java類铐拐,對應的包路徑為 src/test/java/cn/xuhuanfeng/maven/HelloWorldTest.java徘键,內(nèi)容如下
package cn.xuhuanfeng.maven;

import static org.junit.Assert.assertEquals;
import org.junit.Test;

/**
*  測試HelloWorld
*/
public class HelloWorldTest{

    @Test
    public void testHelloWorld(){
        HelloWorld helloWorld = new HelloWorld();
        String result = helloWorld.sayHello();
        assertEquals("Maven_HelloWorld",result);
    }

}
  1. 運行測試用例,執(zhí)行命令為mvn clean test遍蟋, 對應的結果如下所示:

從上圖中可以看到吹害,在執(zhí)行test之前,會對整個項目先進行compile虚青,從而保證始終得到最新版本的class文件它呀,并且,從圖中可以看到棒厘,Maven自動幫我們 運行測試樣例纵穿,并且返回樣例的結果。

文件路徑說明

Maven會自動編譯src/main/java目錄下的文件奢人,并且編譯谓媒,運行src/test/java目錄下的測試樣例,這也是我們將路徑命名如下的原因达传,同時篙耗,將測試代碼以及主代碼分開也是一種比較好的做法迫筑。

自動生成項目骨架

在上面中,我們手動編寫了一個基本的Maven項目宗弯,包括了配置pom.xml脯燃,HelloWorld.java以及對應的測試類,可能你會感覺到實際上使用Maven很麻煩蒙保,確實辕棚,如果按照上面那種做法,很繁瑣邓厕,所以Maven為我們提供了另一種機制逝嚎,可以通過配置archetype來生成對應的項目骨架,不過详恼,由于這里只是簡單的入門补君,所以我們直接使用Maven提供的archetype即可,通過命令mvn archetype:generate 就可以快速地生成一個項目的骨架昧互,具體過程如下所示:

中間會有很多內(nèi)容挽铁,主要是Maven從中央倉庫中拉取相關的信息,這里省略

然后可以看到熟悉的內(nèi)容敞掘,只需要在這里填入對應的groupId叽掘,artifactId,version玖雁,package等信息即可

最后生成的項目結果圖如下所示:

并且包含了Junit依賴以及一個簡單的測試樣式更扁,是不是很方便?

總結

在這一小節(jié)中赫冬,我們了解了關于Maven的一些基本知識浓镜,手動創(chuàng)建了一個Maven例子,HelloWorld面殖,并為其編寫測試樣例竖哩,通過Maven的構建插件以及測試插件,自動完成編譯脊僚、測試的工作,最后通過Maven的自動構建工具遵绰,構建一個簡單的項目骨架辽幌,Maven的學習之路還在繼續(xù)。

本節(jié)中主要用到的命令為

 mvn clean compile
 mvn clean test
 mvn archetype:generate
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末椿访,一起剝皮案震驚了整個濱河市乌企,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌成玫,老刑警劉巖加酵,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拳喻,死亡現(xiàn)場離奇詭異,居然都是意外死亡猪腕,警方通過查閱死者的電腦和手機冗澈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陋葡,“玉大人亚亲,你說我怎么就攤上這事「停” “怎么了捌归?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長岭粤。 經(jīng)常有香客問我惜索,道長,這世上最難降的妖魔是什么剃浇? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任门扇,我火速辦了婚禮,結果婚禮上偿渡,老公的妹妹穿的比我還像新娘臼寄。我一直安慰自己,他們只是感情好溜宽,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布吉拳。 她就那樣靜靜地躺著,像睡著了一般适揉。 火紅的嫁衣襯著肌膚如雪留攒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天嫉嘀,我揣著相機與錄音炼邀,去河邊找鬼。 笑死剪侮,一個胖子當著我的面吹牛拭宁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瓣俯,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼杰标,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了彩匕?” 一聲冷哼從身側(cè)響起腔剂,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎驼仪,沒想到半個月后掸犬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袜漩,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年湾碎,在試婚紗的時候發(fā)現(xiàn)自己被綠了宙攻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡胜茧,死狀恐怖粘优,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呻顽,我是刑警寧澤雹顺,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站廊遍,受9級特大地震影響嬉愧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喉前,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一没酣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卵迂,春花似錦裕便、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至改览,卻和暖如春下翎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宝当。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工视事, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庆揩。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓俐东,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盾鳞。 傳聞我的和親對象是個殘疾皇子犬性,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)腾仅,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 1.編寫POM Maven項目的核心文件是pom.xml套利,POM(Project Objcet Model)項目對...
    zlcook閱讀 5,900評論 7 26
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • 1 一次偶然推励,與久別許久的弟弟風太相遇鹤耍。圓平庸的生活開始每天被記錄下來。真的很平庸验辞,以至于...
    chapter1v1閱讀 406評論 0 0
  • 前言:培訓稿黄,留下了什么? 在很長一段時間里跌造,只要我出差杆怕,都會有人問我: “你又去培訓啊壳贪?” 我都會很自然地告訴對方...
    王佐佑閱讀 572評論 0 2