javaweb入門之學(xué)習(xí)maven(01)

maven入門知識

一. maven簡介

Apache Maven丸升,是一個軟件(特別是Java軟件)項(xiàng)目管理及自動構(gòu)建工
具趁尼,由Apache軟件基金會所提供⌒栉澹基于項(xiàng)目對象模型(縮寫:POM)概念,
Maven利用一個中央信息片斷能管理一個項(xiàng)目的構(gòu)建辆苔、報(bào)告和文檔等步驟亮钦。
Maven也可被用于構(gòu)建和管理各種項(xiàng)目,例如C#抖锥,Ruby,Scala和其他語
言編寫的項(xiàng)目碎罚。Maven曾是Jakarta項(xiàng)目的子項(xiàng)目磅废,現(xiàn)為由Apache軟件基
金會主持的獨(dú)立Apache項(xiàng)目。---摘自維基百科.


Maven項(xiàng)目使用項(xiàng)目對象模型(Project Object Model魂莫,POM)來配置还蹲。
項(xiàng)目對象模型存儲在名為 pom.xml 的文件中。
以下是一個簡單的示例:


<project>
  <!-- model version is always 4.0.0 for Maven 2.x POMs -->
  <modelVersion>4.0.0</modelVersion>
  
  <!-- project coordinates, i.e. a group of values which
       uniquely identify this project -->
  
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0</version>

  <!-- library dependencies -->
  
  <dependencies>
    <dependency>
    
      <!-- coordinates of the required library -->
      
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      
      <!-- this dependency is only used for running and compiling tests -->
      
      <scope>test</scope>
      
    </dependency>
  </dependencies>
</project>

二.maven主要解決開發(fā)過程的兩個問題:

  1. 項(xiàng)目文件jar包比較多,項(xiàng)目大小太大,使用maven構(gòu)建項(xiàng)目,把依賴包分離,大大減小項(xiàng)目的大小.
  2. jar包相互之間的依賴關(guān)系,版本沖突問題.maven會自動處理相互之間的依賴,減少了手動添加的繁雜.只需要在pom.xml文件添加需要的依賴即可.maven的依賴管理,就是管理jar包的一個過程.

三.maven的安裝

1.http://maven.apache.org/download.cgi官網(wǎng)下載最新版本
mac選擇下載:    apache-maven-3.5.0-bin.zip

2. 解壓到本地,我的解壓路徑:/Users/xiaoq/Documents/maven

3. 在終端輸入命令:vim ~/.bash_profile,在里面的文件插入:
export M2_HOME=/Users/xiaoq/Documents/maven/apache-maven-3.5.0
export PATH=$PATH:$M2_HOME/bin
進(jìn)行保存退出esc->:wq

終端運(yùn)行:source ~/.bash_profile
在運(yùn)行:mvn -v
如果沒有報(bào)錯,表示maven配置成功

01maven位置.png
02maven配置.png

四.本地倉庫配置和鏡像代理配置

1.創(chuàng)建repository文件夾(我的配置位置:/Users/xiaoq/Documents/work/repository)

2. 找到maven解壓文件下的conf文件下的settings.xml文件,打開進(jìn)行編輯

4.1 配置本地倉庫

<localRepository>/Users/xiaoq/Documents/work/repository</localRepository>

4.2 配置鏡像(下載速度回很快,不然訪問外網(wǎng)速度很慢,卡死),
mirros節(jié)點(diǎn)下添加

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror> 
      <id>uk</id>  
      <mirrorOf>central</mirrorOf>  
      <name>Human Readable Name for this Mirror.</name>  
      <url>http://uk.maven.org/maven2/</url> 
    </mirror>

    <mirror>
      <id>CN</id>
      <name>OSChina Central</name>
      <url>http://maven.oschina.net/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
      <id>nexus</id>
      <name>internal nexus repository</name>
      <!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
      <url>http://repo.maven.apache.org/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
    

4.3 配置默認(rèn)SDK版本,默認(rèn)jse1.5,在profiles節(jié)點(diǎn)下添加:

<profile>
      <id>jdk-1.8</id>
      <activation>
          <activeByDefault>true</activeByDefault>
          <jdk>1.8</jdk>
      </activation>
      <properties>
          <maven.compiler.source>1.8</maven.compiler.source>
          <maven.compiler.target>1.8</maven.compiler.target>
          <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
</profile>

基本配置完成

五.maven目錄結(jié)構(gòu)規(guī)范

    project-name
                    |---src
                            |---main
                                |---java
                                     |---resources
                                |---webapp
                            
                            |test
                                |---java
                                     |---resources
03maven目錄規(guī)范.png

六. maven常用的命令

maven 

compile: 編譯命令,作用是將src/main/java下的文件編譯為class文件并且輸出到target目錄下.

test: 測試命令,會執(zhí)行src/test/java下的單元測試類

clean: 清除命令,刪除target目錄的內(nèi)容

package: 打包命令,對于Java工程執(zhí)行package命令會打成jar包,對于web工程打成war包

install: 安裝命令,會把maven打成的jar包或者war包發(fā)布到本地倉庫


運(yùn)行命令可以發(fā)現(xiàn),當(dāng)執(zhí)行命令的時候,前面的操作也會自動執(zhí)行,比如執(zhí)行test命令,會自動執(zhí)行clean和compile命令.

clean->compile->test->package->install

七, maven和eclipse結(jié)合使用

高版本eclipse自帶maven插件,只需要配置即可使用

7.1 eclipse配置maven安裝路徑

1.打開eclipse,選擇preference,找到maven選項(xiàng),選擇installations,點(diǎn)擊右邊的add進(jìn)行編輯,選擇本地的maven路徑
最后點(diǎn)擊finish完成

04maven-eclipse.png

7.2 配置本地倉庫,就是找到剛才建立的repository文件

選擇maven選項(xiàng)的User Settings選項(xiàng):
User Settings選擇找到maven解壓安裝目錄下的settings.xml文件位置(就是第四步編輯的文件)

Local Repository指向自己創(chuàng)建的repository文件的文字

05usersettings.png

7.3 顯示maven repository窗口

eclipse->Window---show view ------other----------maven Repositories

重構(gòu)索引:右鍵點(diǎn)擊 Local Repositories,點(diǎn)擊 Rebuild Index

06showview.png
07rebuildindex.png
  1. 創(chuàng)建hellomaven工程
File->New->Maven Project ,打鉤create a simple project
->next->Group Id(公司域名com.it.companyname),Artifact Id(項(xiàng)目名稱:hellomaven),Packaging選擇war(web項(xiàng)目)->finish完成即可

08mavenpro.png
08mavenpro01.png
08mavenpro02.png

8.1 解決報(bào)錯原因

8.1.1:
在webapp目錄下創(chuàng)建文件夾WEB-INF,在WEB-INF下創(chuàng)建web.xml文件,并且寫入web項(xiàng)目的約束.

09webxml.png

8.2 創(chuàng)建HelloServlet,訪問路徑設(shè)置為/hello

發(fā)現(xiàn)報(bào)錯,這是缺少jar包導(dǎo)致

![10servlet02.png](http://upload-images.jianshu.io/upload_images/621082-82afaaf58fe8f1f2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

8.2.1 解決


打開pom.xml文件,選擇Dependecies選項(xiàng)卡,點(diǎn)擊add按鈕,搜索servlet,選擇jar包,點(diǎn)擊jar包OK即可,等jar包下載完成即可解決,
如果發(fā)現(xiàn)下載完成還是報(bào)錯,可以右點(diǎn)擊工程名,選擇maven->Update Project,再rebuild index

11addjar.png

在 HelloServlet類中的doGet方法寫入:response.getWriter().write("Hello Maven!");

8.3運(yùn)行工程

右擊工程->run as ->選擇maven build->輸入tomcat7:run,等待服務(wù)器啟動完成,如果不報(bào)錯,進(jìn)行訪問路徑

如果沒有tomcat7,打開pom.xml加入下面設(shè)置,再次Update Project,rebuild index,運(yùn)行命令:

  <build>
    <plugins>
            <plugin>  
                <groupId>org.apache.tomcat.maven</groupId>  
                <artifactId>tomcat7-maven-plugin</artifactId>  
                <version>2.1</version>  
            </plugin> 
    </plugins>
  </build>

11run.png
11run02.png

控制臺會打印出訪問路徑,拷貝到瀏覽器,加上訪問路徑/hello,http://localhost:8080/hellomaven/hello如果不出意外,訪問成功,至此,hellmaven構(gòu)建完成.

12url.png
13success.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耙考,一起剝皮案震驚了整個濱河市谜喊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌倦始,老刑警劉巖斗遏,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鞋邑,居然都是意外死亡诵次,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門枚碗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逾一,“玉大人,你說我怎么就攤上這事肮雨∽穸拢” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長陌宿。 經(jīng)常有香客問我锡足,道長,這世上最難降的妖魔是什么壳坪? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任舶得,我火速辦了婚禮,結(jié)果婚禮上爽蝴,老公的妹妹穿的比我還像新娘沐批。我一直安慰自己,他們只是感情好霜瘪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布珠插。 她就那樣靜靜地躺著惧磺,像睡著了一般颖对。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磨隘,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天缤底,我揣著相機(jī)與錄音,去河邊找鬼番捂。 笑死个唧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的设预。 我是一名探鬼主播徙歼,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鳖枕!你這毒婦竟也來了魄梯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤宾符,失蹤者是張志新(化名)和其女友劉穎酿秸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魏烫,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辣苏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了哄褒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稀蟋。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖呐赡,靈堂內(nèi)的尸體忽然破棺而出退客,到底是詐尸還是另有隱情,我是刑警寧澤罚舱,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布井辜,位于F島的核電站绎谦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粥脚。R本人自食惡果不足惜窃肠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刷允。 院中可真熱鬧冤留,春花似錦、人聲如沸树灶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽天通。三九已至泊窘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間像寒,已是汗流浹背烘豹。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诺祸,地道東北人携悯。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像筷笨,于是被迫代替她去往敵國和親憔鬼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

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