maven入門(mén)及使用

1.maven為我們提供了一個(gè)archetype插件,用于創(chuàng)建符合maven規(guī)范的目錄骨架。

    maven規(guī)定是:
    ---src
        ---main
            ---java
                ---主代碼
        ---test
            ---java
                ---測(cè)試代碼
    命令:
        mvn -v   查看maven版本
        compile  編譯
        test     測(cè)試
        package  打包
      
        clean     刪除target
        install   安裝jar包到本地倉(cāng)庫(kù)中
        
        
        創(chuàng)建目錄的兩種方式:
        1.archetype:generate 按照提示進(jìn)行選擇
        2.artchetype:generate -DgroupId=組織名,公司網(wǎng)址的反寫(xiě)+項(xiàng)目名
                              -DartifactId=項(xiàng)目名-模塊名
                              -Dversion=版本號(hào)
                              -Dpackage=代碼所存在的包名

3.在maven世界中任何一個(gè)依賴、插件、項(xiàng)目構(gòu)建的輸出都可以被稱為構(gòu)建,構(gòu)
件通過(guò)坐標(biāo)作為其唯一標(biāo)識(shí)。

    坐標(biāo)
        構(gòu)件
    倉(cāng)庫(kù)
        本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)
        在maven的安裝目錄中---lib---maven-model-builder-3.3.3.jar中有pom.xml
    鏡像倉(cāng)庫(kù)
        在maven的安裝目錄中--config--settings.xml--mirrors標(biāo)簽(145行)
        <mirror>
            <!--鏡像倉(cāng)庫(kù)的ID-->
            <id>maven.net.cn</id>
            <!--為哪個(gè)倉(cāng)庫(kù)配置鏡像,中央倉(cāng)庫(kù)名為central,也可以使用通配符*-->
            <mirrorOf>central</mirrorOf>
            <name>central mirror in china</name>
            <url>http://maven.net.cn/content/groups/public</url>
        </mirror>
    更改倉(cāng)庫(kù)的位置
        找到settings.xml---<localRepository>標(biāo)簽(注意路徑是/)
        <localRepository>J:/test/repository</localRepository

4.在Eclipse中使用maven(如果是4.0以上或者M(jìn)yeclipse就不必安裝插件)
1.找到Eclipse的dropins文件夾,把maven插件放入即可
2.修改Eclipse的jvm:找到eclipse.ini文件,打開(kāi)添加-vm:c:\java...\javaw.exe
3.修改Eclipse中jre的配置
4.修改maven中的路徑設(shè)置

    1.一個(gè)完整的項(xiàng)目構(gòu)建過(guò)程包括:
        清理、編譯、測(cè)試、打包、集成測(cè)試、驗(yàn)證、部署
    2.maven生命周期:
        clean    清理項(xiàng)目,分為三個(gè)階段
             pre-clean  執(zhí)行清理前的工作
             clean      清理上一次構(gòu)建生成的所有文件
             post-clean 執(zhí)行清理后的文件
             
        default  構(gòu)建項(xiàng)目(最核心)包括:
            compile、test、package install
        
        
        site     生成項(xiàng)目站點(diǎn)包括以下階段:
            pre-site  在生成項(xiàng)目站點(diǎn)前要完成的工作
            site      生成項(xiàng)目的站點(diǎn)文檔
            post-site 在生成項(xiàng)目站點(diǎn)后要完成的工作
            site-deploy 發(fā)布生成的站點(diǎn)到服務(wù)器上
    3.maven支持的插件簡(jiǎn)單介紹:(https://maven.apache.org/plugins/index.html)
        source  可以將項(xiàng)目的源碼進(jìn)行打包
            舉例:在pom.xml中配置
                <build>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>2.4</version>
                        <!--綁定source命令到packge命令生命周期中,
                        執(zhí)行package命令時(shí),自動(dòng)執(zhí)行source命令-->
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <!--運(yùn)行的目標(biāo)-->
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </build>
            然后執(zhí)行  clean package命令

5.pom.xml介紹

    <modelVersion>4.0.0</modelVersion>是一個(gè)固定的版本,是一個(gè)必須的元素,指定了當(dāng)前pom的版本
    坐標(biāo)的信息
    
    <!--主項(xiàng)目的標(biāo)識(shí),用來(lái)定義當(dāng)前maven屬于哪個(gè)實(shí)際的項(xiàng)目的,以反寫(xiě)的公司網(wǎng)址+項(xiàng)目名-->
    <groupId>com.hbtt.test.a</groupId>
    <!--表示一個(gè)模塊的標(biāo)識(shí),實(shí)際項(xiàng)目中的一個(gè)模塊,一般使用時(shí)間的項(xiàng)目名+模塊名-->
    <artifactId>haha</artifactId>
    <!--表示當(dāng)前項(xiàng)目的版本號(hào)-->
    <!--0.0.1
        第一個(gè)0表示大版本號(hào)
        第二個(gè)0表示分支版本號(hào)
        第三個(gè)0表示小版本號(hào)
        snapshot 快照版本
        alpha    內(nèi)部測(cè)試
        beta     公測(cè)
        Release  穩(wěn)定
        GA       正式發(fā)布
    -->
    <version>0.0.1-SNAPSHOT</version>
    
    <!--maven項(xiàng)目的打包方式-->
    <!--
        默認(rèn)是jar
        war zip pom
    -->
    <packaging>jar</packaging>
    <!--項(xiàng)目的描述名,在產(chǎn)生項(xiàng)目文檔時(shí)使用-->
    <name>haha</name>
    <!--項(xiàng)目地址-->
    <url>http://maven.apache.org</url>
    <!--項(xiàng)目描述-->
    <description></description>
    <!--開(kāi)發(fā)人員列表-->
    <developers></developers>
    <!--許可證信息,比如用到開(kāi)源框架時(shí)-->
    <licenses></licenses>
    <!--組織信息-->
    <organization></organization>
    <!--依賴信息-->
    <dependencies>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <!--依賴的范圍,test表示junit只在測(cè)試依賴范圍內(nèi)有用,在主代碼中會(huì)報(bào)錯(cuò)
            maven提供了三種classpath:1.編譯2測(cè)試3運(yùn)行
            scope有六種級(jí)別:
            1.compile:默認(rèn)的范圍,編譯測(cè)試運(yùn)行都有效
            2.provided:在編譯和測(cè)試時(shí)有效,比如servlet API
            3.runtime:在測(cè)試和運(yùn)行時(shí)有效 比如JDBC驅(qū)動(dòng),編譯時(shí)只需要jdbc主代碼提供的API,只有在
            測(cè)試和運(yùn)行時(shí)才需要jdbc的實(shí)現(xiàn)代碼
            4.test 只在測(cè)試范圍有效
            5.system:與本機(jī)系統(tǒng)相關(guān)聯(lián),可移植性差,編譯測(cè)試時(shí)有效,比如引入本地的JAVAHOME可能
            會(huì)因?yàn)楦淖兿到y(tǒng),路徑不一致而報(bào)錯(cuò)
            不一致
            6.import:一個(gè)導(dǎo)入的范圍,只用在<dependencyManagement>標(biāo)簽中表示從其他的
            pom中導(dǎo)入dependecy的配置
         -->
         <scope>test</scope>
         <!--設(shè)置依賴是否可選,只有兩個(gè)值true和false,默認(rèn)false,子項(xiàng)目默認(rèn)是繼承的,
         如果true,子項(xiàng)目必須顯示的繼承-->
         <optional></optional>
         <!--排除依賴傳遞列表-->
         <exclusions>
            <exclusion></exclusion>
         </exclusions>
    </dependencies>
    <!--依賴管理,可以包含多個(gè)依賴,但是它不會(huì)被運(yùn)行,引入到實(shí)際的依賴中,這個(gè)標(biāo)簽用于
    定義在父模塊中,供子模塊繼承。比如junit放在父模塊中,其他繼承即可-->
    <dependencyManagement>
        <dependencies>
            <dependency></dependency>
        </dependencies>
    </dependencyManagement>
    <!--通常為構(gòu)件行為提供相應(yīng)的支持-->
    <build>
        <plugins>
            <plugin>
                groupId ,artifactID version等標(biāo)簽
            </plugin>
        </plugins>
    </build>
    <!--通常用于子模塊對(duì)父模塊pom的繼承-->
    <parent></parent>
    <!--用來(lái)聚合運(yùn)行多個(gè)的maven項(xiàng)目,如果有多個(gè)maven需要編譯,使用此標(biāo)簽,可以指定多個(gè)模塊一起編譯-->
    <modules></modules>

6.修復(fù)JDK版本

        1.找打maven的settings文件中的profiles標(biāo)簽
        2. 按如下格式書(shū)寫(xiě),必須按如下寫(xiě)
        <profile>
              <id>jdk-1.7</id>

              <activation>
                <activeByDefault>true</activeByDefault>
                <jdk>1.7</jdk>
              </activation>
              
              <properties>
                <maven.compiler.source>1.7</maven.compiler.source>
                <maven.compiler.target>1.7</maven.compiler.target>
                <maven.compiler.compilerVesion>1.7</maven.compiler.compilerVesion>
              </properties>
         </profile>

7.用maven構(gòu)件web項(xiàng)目

    注意:
    1.選擇archetype-webapp選項(xiàng)
    2.對(duì)于index報(bào)錯(cuò),添加servlet依賴
    3.檢查文件的輸出路徑:build Path-->configure build path-->source選項(xiàng)
    4.改成web項(xiàng)目
        選擇項(xiàng)目屬性-->maven-->project Facets 中勾選上Dynamic web services選項(xiàng)
    5.修改部署時(shí)的默認(rèn)配置:
    點(diǎn)擊項(xiàng)目屬性--->選擇Deployment Assembly選項(xiàng)-->刪除掉測(cè)試的文件
    6.使用jetty啟動(dòng)web項(xiàng)目:引入jetty插件依賴,然后運(yùn)行時(shí)輸入jetty:run
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,290評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,776評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,510評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,866評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,036評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,331評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,536評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,754評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,154評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,469評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,273評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,505評(píng)論 2 379

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