maven入門及使用

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

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

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

    坐標(biāo)
        構(gòu)件
    倉庫
        本地倉庫和遠(yuǎn)程倉庫
        在maven的安裝目錄中---lib---maven-model-builder-3.3.3.jar中有pom.xml
    鏡像倉庫
        在maven的安裝目錄中--config--settings.xml--mirrors標(biāo)簽(145行)
        <mirror>
            <!--鏡像倉庫的ID-->
            <id>maven.net.cn</id>
            <!--為哪個(gè)倉庫配置鏡像,中央倉庫名為central,也可以使用通配符*-->
            <mirrorOf>central</mirrorOf>
            <name>central mirror in china</name>
            <url>http://maven.net.cn/content/groups/public</url>
        </mirror>
    更改倉庫的位置
        找到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文件,打開添加-vm:c:\java...\javaw.exe
3.修改Eclipse中jre的配置
4.修改maven中的路徑設(shè)置

    1.一個(gè)完整的項(xiàng)目構(gòu)建過程包括:
        清理、編譯、測試、打包、集成測試、驗(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支持的插件簡單介紹:(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)識,用來定義當(dāng)前maven屬于哪個(gè)實(shí)際的項(xiàng)目的,以反寫的公司網(wǎng)址+項(xiàng)目名-->
    <groupId>com.hbtt.test.a</groupId>
    <!--表示一個(gè)模塊的標(biāo)識,實(shí)際項(xiàng)目中的一個(gè)模塊,一般使用時(shí)間的項(xiàng)目名+模塊名-->
    <artifactId>haha</artifactId>
    <!--表示當(dāng)前項(xiàng)目的版本號-->
    <!--0.0.1
        第一個(gè)0表示大版本號
        第二個(gè)0表示分支版本號
        第三個(gè)0表示小版本號
        snapshot 快照版本
        alpha    內(nèi)部測試
        beta     公測
        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>
    <!--開發(fā)人員列表-->
    <developers></developers>
    <!--許可證信息,比如用到開源框架時(shí)-->
    <licenses></licenses>
    <!--組織信息-->
    <organization></organization>
    <!--依賴信息-->
    <dependencies>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <!--依賴的范圍,test表示junit只在測試依賴范圍內(nèi)有用,在主代碼中會報(bào)錯(cuò)
            maven提供了三種classpath:1.編譯2測試3運(yùn)行
            scope有六種級別:
            1.compile:默認(rèn)的范圍,編譯測試運(yùn)行都有效
            2.provided:在編譯和測試時(shí)有效,比如servlet API
            3.runtime:在測試和運(yùn)行時(shí)有效 比如JDBC驅(qū)動(dòng),編譯時(shí)只需要jdbc主代碼提供的API,只有在
            測試和運(yùn)行時(shí)才需要jdbc的實(shí)現(xiàn)代碼
            4.test 只在測試范圍有效
            5.system:與本機(jī)系統(tǒng)相關(guān)聯(lián),可移植性差,編譯測試時(shí)有效,比如引入本地的JAVAHOME可能
            會因?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è)依賴,但是它不會被運(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>
    <!--通常用于子模塊對父模塊pom的繼承-->
    <parent></parent>
    <!--用來聚合運(yùn)行多個(gè)的maven項(xiàng)目,如果有多個(gè)maven需要編譯,使用此標(biāo)簽,可以指定多個(gè)模塊一起編譯-->
    <modules></modules>

6.修復(fù)JDK版本

        1.找打maven的settings文件中的profiles標(biāo)簽
        2. 按如下格式書寫,必須按如下寫
        <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.對于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)-->刪除掉測試的文件
    6.使用jetty啟動(dòng)web項(xiàng)目:引入jetty插件依賴,然后運(yùn)行時(shí)輸入jetty:run
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容