亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

maven介紹

xorpay / 1886人閱讀

摘要:介紹簡(jiǎn)介編寫(xiě)的用于構(gòu)建系統(tǒng)的自動(dòng)化工具。文件的基本配置介紹什么是,項(xiàng)目對(duì)象模型?;驹O(shè)置協(xié)作關(guān)系組織標(biāo)識(shí),例如,在目錄下,將是目錄。

1. Maven介紹

1.1. 簡(jiǎn)介

java編寫(xiě)的用于構(gòu)建系統(tǒng)的自動(dòng)化工具。

目前版本是2.0.9,注意maven2和maven1有很大區(qū)別,閱讀第三方文檔時(shí)需要區(qū)分版本。

1.2. Maven資源
?
見(jiàn)官方網(wǎng)站;

?
The 5 minute test,官方簡(jiǎn)易入門(mén)文檔;

?
Getting Started Tutorial,官方入門(mén)文檔;

?
Build Cookbook,官方的cookbook;

?
POM Reference,POM文件的設(shè)置參考

?
Settings Reference ,settings文件的設(shè)置參考

?
Better Builds with Maven,免費(fèi)的電子書(shū),下載需要注冊(cè)。

1.3. Maven和Ant的區(qū)別
Maven正在逐漸取代Ant,很多java開(kāi)源軟件(Spring、Struts2 ……)已經(jīng)使用maven。
?不需要寫(xiě)復(fù)雜的處理腳本;
?聲明式的類庫(kù)依賴管理。

1.4. Maven的基本功能
?構(gòu)建:比如生成class、jar、war或者ear文件
?生成文檔:比如生成javadoc、網(wǎng)站文檔
?生成報(bào)告:比如junit測(cè)試報(bào)告
?生成依賴類庫(kù):生成文檔,說(shuō)明項(xiàng)目多其他軟件的依賴
?有關(guān)SCM:SCM(Software Configuration Management),軟件配置管理,比如版本控制,比如bug管理等等
?發(fā)布:生成供發(fā)布的分發(fā)包,比如生成Struts2的分發(fā)包,供提交給用戶使用
?部署:比如,web應(yīng)用程序,自動(dòng)部署到指定的服務(wù)器上

通過(guò)我寫(xiě)的商品管理的小例子,演示結(jié)合maven和svn的功能。

2. Maven使用

2.1. Maven的安裝和配置
?從官方網(wǎng)站下載最新的Maven分發(fā)包http://maven.apache.org/download.html,當(dāng)前為2.0.9;
?解壓縮到本地;
?配置maven, 將maven/bin目錄設(shè)置到windows環(huán)境變量Path中
?檢查maven是否安裝成功, 在命令行中執(zhí)行 mvn -version

2.2. Maven的基本使用

Maven的基本使用介紹通過(guò)命令行編寫(xiě)簡(jiǎn)單的java和web項(xiàng)目。

2.2.1. 實(shí)現(xiàn)Java項(xiàng)目

通過(guò)maven在命令行下創(chuàng)建普通java項(xiàng)目,也就是main方法執(zhí)行的項(xiàng)目或者jar文件的類庫(kù)。

2.2.1.1. 創(chuàng)建Maven項(xiàng)目

執(zhí)行:

mvn archetype:generate

在交互界面中:
?Choose a number: 回車即可,也就是選擇15
?Define value for groupId: 輸入組織id,比如easymorse.com
?Define value for artifactId:輸入項(xiàng)目名稱,比如helloworld
?Define value for version: 輸入版本號(hào),可以直接回車,默認(rèn)是1.0-SNAPSHOT
?Define value for package: java的包名,比如com.easymorse
?然后回車表示確認(rèn)上述輸入即可。

觀察helloworld目錄(Define value for artifactId輸入的項(xiàng)目名稱)下生成的文件和目錄:
?項(xiàng)目構(gòu)建文件: pom.xml
?代碼框架: srcmainjavacomeasymorseApp.java
?
測(cè)試代碼: src estjavacomeasymorseAppTest.java

2.2.1.2. 運(yùn)行Maven項(xiàng)目

命令行進(jìn)入helloworld目錄Define value for artifactId輸入的項(xiàng)目名稱)。

項(xiàng)目打包

mvn package

檢查命令生成了什么?
?target目錄
?編譯了代碼
?編譯了測(cè)試代碼
?使用junit測(cè)試并生成的報(bào)告
?生成代碼的jar文件

運(yùn)行打包的jar文件:

java -cp targethelloworld-1.0-SNAPSHOT.jar com.easymorse.App

編譯源程序

mvn compile

編譯并測(cè)試

mvn test

清空生成的文件

mvn clean

將maven項(xiàng)目轉(zhuǎn)化為eclipse項(xiàng)目

命令行運(yùn)行:

mvn eclipse:eclipse

打開(kāi)eclipse,菜單選擇:file>import>general>existing projects into workspace,在對(duì)話框中選中目錄,導(dǎo)入即可。

如果要清除有關(guān)eclipse項(xiàng)目的配置信息:

mvn -Dwtpversion=1.0 eclipse:clean

聯(lián)合使用

mvn eclipse:clean clean

2.2.2. 實(shí)現(xiàn)Web項(xiàng)目

通過(guò)maven在命令行下創(chuàng)建java web項(xiàng)目。

2.2.2.1. 創(chuàng)建Maven項(xiàng)目

在命令行輸入,這一步和創(chuàng)建java項(xiàng)目類似:

mvn archetype:generate

交互步驟說(shuō)明:
?Choose a number: 回車即可,也就是選擇18,這里和java普通項(xiàng)目不一樣
?Define value for groupId: 輸入組織id,比如easymorse.com
?Define value for artifactId:輸入項(xiàng)目名稱,比如helloworld
?Define value for version: 輸入版本號(hào),可以直接回車,默認(rèn)是1.0-SNAPSHOT
?Define value for package: java的包名,比如com.easymorse
?然后回車表示確認(rèn)上述輸入即可。

需要在pom.xml文件中增加servlet容器的插件:

    
            
                    
                            org.codehaus.mojo
                            tomcat-maven-plugin
                    
                    
                            org.mortbay.jetty
                            maven-jetty-plugin
                            6.1.6
                    
                    
                            maven-compiler-plugin
                            
                                    1.6
                                    1.6
                                    UTF-8
                            
                    
            
    

?tomcat插件
?jetty插件
?編譯插件的配置

repository目錄的作用

repository的位置,在用戶目錄的.m2目錄下。

repository目錄的作用,對(duì)依賴類庫(kù)的緩存。

2.2.2.2. 運(yùn)行Maven項(xiàng)目

項(xiàng)目打包

mvn package

啟動(dòng)tomcat

mvn tomcat:run

啟動(dòng)jetty

mvn jetty:run

轉(zhuǎn)化為eclipse項(xiàng)目

mvn -Dwtpversion=1.5 eclipse:eclipse

這樣生成wtp插件的web項(xiàng)目。

打開(kāi)eclipse,菜單選擇:file>import>general>existing projects into workspace,在對(duì)話框中選中目錄,導(dǎo)入即可。

另外,需要在eclipse里創(chuàng)建一個(gè)classpath變量,名稱為:M2_REPO,值為系統(tǒng)用戶下.m2/repository目錄。

3. POM文件的基本配置
3.1. POM介紹
3.1.1. 什么是POM

Project Object Model,項(xiàng)目對(duì)象模型。

通過(guò)xml格式保存的pom.xml文件。

作用類似ant的build.xml文件,功能更強(qiáng)大。

該文件用于管理:源代碼、配置文件、開(kāi)發(fā)者的信息和角色、問(wèn)題追蹤系統(tǒng)、組織信息、項(xiàng)目授權(quán)、項(xiàng)目的url、項(xiàng)目的依賴關(guān)系等等。

3.1.2. 快速瀏覽

一個(gè)完整的pom.xml文件,放置在項(xiàng)目的根目錄下。


  4.0.0

  
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...

  
  ...
  ...

  
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...

  
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...
  ...

3.2. 基本設(shè)置
3.2.1. 協(xié)作關(guān)系


  4.0.0

  org.codehaus.mojo
  my-project
  1.0
  war

?groupId : 組織標(biāo)識(shí),例如:org.codehaus.mojo,在M2_REPO目錄下,將是: org/codehaus/mojo目錄。
?artifactId : 項(xiàng)目名稱,例如:my-project,在M2_REPO目錄下,將是:org/codehaus/mojo/my-project目錄。
?version : 版本號(hào),例如:1.0,在M2_REPO目錄下,將是:org/codehaus/mojo/my-project/1.0目錄。
?packaging : 打包的格式,可以為:pom , jar , maven-plugin , ejb , war , ear , rar , par

3.2.2. POM間關(guān)系
3.2.2.1. 依賴關(guān)系
依賴關(guān)系列表(dependency list)是POM的重要部分。


    
      junit
      junit
      4.0
      test
    
    ...
  

?groupId , artifactId , version :
?scope : compile(default),provided,runtime,test,system
?exclusions

如何查到依賴的類庫(kù)?

一般可以通過(guò)這個(gè)網(wǎng)站:http://www.mvnrepository.com

比如查詢hibernate,可以找到結(jié)果列表中的hibernate類庫(kù)條目。

點(diǎn)擊:http://www.mvnrepository.com/artifact/org.hibernate/hibernate,

選擇版本,比如3.2.6ga,即:http://www.mvnrepository.com/art ... /hibernate/3.2.6.ga

復(fù)制文章中的:


    org.hibernate
    hibernate
    3.2.6.ga

到pom.xml文件中即可。

是否還需要找到hibernate依賴的pom?

不需要,hibernate也會(huì)有pom,maven會(huì)通過(guò)它的pom自動(dòng)找到它依賴的類庫(kù)。

3.2.2.2. 繼承關(guān)系

繼承其他pom.xml配置的內(nèi)容。

maven提供了一個(gè)類似java.lang.Object的頂級(jí)父pom.xml文件。

可以通過(guò)下面命令查看當(dāng)前pom.xml受到超pom.xml文件的影響:

mvn help:effective-pom

創(chuàng)建一個(gè)各種項(xiàng)目可復(fù)用的pom.xml文件:http://easymorse.googlecode.com/svn/trunk/pom/pom.xml

部署要復(fù)用的pom.xml文件:

mvn install

在自己的pom文件中繼承上述pom:


com.easymorse
pom
0.1

3.2.2.3. 聚合關(guān)系

用于將多個(gè)maven項(xiàng)目聚合為一個(gè)大的項(xiàng)目。

比如目錄結(jié)構(gòu)如下:

.
|-- pom.xml
|-- module-a
    `-- pom.xml
|-- module-b
    `-- pom.xml
|-- module-c
    `-- pom.xml
|-- foo-all
    `-- pom.xml

那么總的pom.xml文件類似:

...
    
        module-a
        module-b
        module-c
        foo-all
    

參考文檔:http://maven.apache.org/plugins/maven-eclipse-plugin/reactor.html

原文示例有誤,見(jiàn):modules.rar

3.2.3. 其他配置

maven的屬性,是值的占位符,類似EL,類似ant的屬性,比如${X},可用于pom文件任何賦值的位置。

有以下分類:
?env.X:操作系統(tǒng)環(huán)境變量,比如${env.PATH}
?
project.x:pom文件中的屬性,比如:1.0,引用方式:${project.version}

?
settings.x:settings.xml文件中的屬性,比如:false,引用方式:${settings.offline}

?Java System Properties:java.lang.System.getProperties()中的屬性,比如java.home,引用方式:${java.home}
?
自定義:在pom文件中可以:c:/apps/cargo-installs,引用方式:${installDir}

3.3. 其他
3.3.1. 設(shè)置離線

在.m2目錄下創(chuàng)建settings.xml文件(如果沒(méi)有的話)

 settings 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/settings-1.0.0.xsd">
            true
    

3.3.2. 安裝第三方包

經(jīng)常有第三方包,因?yàn)橐恍┰?,在網(wǎng)上repository上沒(méi)有,需要自己動(dòng)手安裝。

比如sun某些版本的jar文件,比如oracle的驅(qū)動(dòng)。

已oracle驅(qū)動(dòng)程序?yàn)槔?,比如?qū)動(dòng)路徑為c:/driver/ojdbc14.jar,是10.2.0.3.0版本

在該網(wǎng)址能夠查到:http://www.mvnrepository.com/artifact/com.oracle/ojdbc14 artifactId和groupId。

mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=c:/driver/ojdbc14.jar

這樣就可以在pom中依賴引用了:


    com.oracle
    ojdbc14
    10.2.0.3.0

3.3.3. 部署到tomcat

tomcat配置有管理權(quán)限的用戶:conf omcat-users.xml



  
  

在pom文件的tomcat插件中添加:


org.codehaus.mojo
tomcat-maven-plugin

http://localhost:8080/manager
myserver
/mycontext

在.m2/settings.xml文件中增加:


        
                
                        myserver
                        marshal
                        password
                
        

運(yùn)行打包部署,在maven項(xiàng)目目錄下:

mvn tomcat:deploy

訪問(wèn):http://localhost:8080/mycontext/ 即可。

撤銷部署:

mvn tomcat:undeploy

啟動(dòng)web應(yīng)用:

mvn tomcat:start

停止web應(yīng)用:

mvn tomcat:stop

重新部署:

mvn tomcat:redeploy

部署展開(kāi)的war文件:

mvn war:exploded tomcat:exploded

3.3.4. 未講到的內(nèi)容

?settings.xml的配置
?pom.xml的詳細(xì)配置
?
自定義插件的方法:http://maven.apache.org/plugins/maven-archetype-plugin/examples/archetype.html

?
自定義goal的執(zhí)行:

?插件的查詢和使用
?搭建鏡像repository
?在maven中調(diào)用ant

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/64116.html

相關(guān)文章

  • maven構(gòu)建java項(xiàng)目工具介紹

    摘要:一用途在創(chuàng)建項(xiàng)目的時(shí)候,可以自己手動(dòng)創(chuàng)建,也可以利用工具創(chuàng)建,也就是來(lái)創(chuàng)建。可以用來(lái)創(chuàng)建項(xiàng)目部署項(xiàng)目安裝管理依賴編譯代碼管理二進(jìn)制等。的目的是使項(xiàng)目過(guò)程規(guī)范化自動(dòng)化高效化及強(qiáng)大的可擴(kuò)展性。 一、maven用途 java在創(chuàng)建項(xiàng)目的時(shí)候,可以自己手動(dòng)創(chuàng)建,也可以利用工具創(chuàng)建,也就是maven來(lái)創(chuàng)建。 maven可以用來(lái)創(chuàng)建項(xiàng)目、部署項(xiàng)目、安裝管理依賴、編譯代碼、管理二進(jìn)制等。 mave...

    liujs 評(píng)論0 收藏0
  • Apache Maven介紹和安裝

    摘要:的好處節(jié)省空間項(xiàng)目的體積相比傳統(tǒng)項(xiàng)目小很多,因?yàn)閷晚?xiàng)目分開(kāi)了,通過(guò)依賴管理來(lái)管理包。一鍵構(gòu)建項(xiàng)目可以完成的工作編譯測(cè)試運(yùn)行打包部署。 Maven 簡(jiǎn)介 什么是 Maven Apache Maven,是一個(gè)軟件項(xiàng)目管理及自動(dòng)構(gòu)建工具,由Apache軟件基金會(huì)所提供,一個(gè)開(kāi)源項(xiàng)目,由 Java 開(kāi)發(fā),并且只是用來(lái)管理 Java 項(xiàng)目的。 Maven 的好處 節(jié)省空間: Maven ...

    wuyumin 評(píng)論0 收藏0
  • Apache Maven介紹和安裝

    摘要:的好處節(jié)省空間項(xiàng)目的體積相比傳統(tǒng)項(xiàng)目小很多,因?yàn)閷晚?xiàng)目分開(kāi)了,通過(guò)依賴管理來(lái)管理包。一鍵構(gòu)建項(xiàng)目可以完成的工作編譯測(cè)試運(yùn)行打包部署。 Maven 簡(jiǎn)介 什么是 Maven Apache Maven,是一個(gè)軟件項(xiàng)目管理及自動(dòng)構(gòu)建工具,由Apache軟件基金會(huì)所提供,一個(gè)開(kāi)源項(xiàng)目,由 Java 開(kāi)發(fā),并且只是用來(lái)管理 Java 項(xiàng)目的。 Maven 的好處 節(jié)省空間: Maven ...

    _DangJin 評(píng)論0 收藏0
  • Maven_00

    摘要:例如,可以提供更改日志用源碼管理工具生成交叉引用郵件列表依賴清單單元測(cè)試報(bào)告含覆蓋率提供開(kāi)發(fā)過(guò)程的最佳實(shí)踐指南通過(guò)收集現(xiàn)行的開(kāi)發(fā)最佳實(shí)踐,來(lái)指導(dǎo)用構(gòu)建的項(xiàng)目。 本文大約1026個(gè)字,閱讀時(shí)間4分鐘。 主要介紹了Maven名字的由來(lái)、Maven產(chǎn)生的背景和Maven的主要功能。 問(wèn)題:Maven是啥? 大多數(shù)人都用Maven來(lái)管理Java項(xiàng)目的依賴,這個(gè)應(yīng)該是Maven的主要功能沒(méi)跑了,...

    booster 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<