4.maven 配置詳解

  1. 生命周期

    1. 構(gòu)建生命周期,描述了構(gòu)建的過程,Maven內(nèi)置了3個構(gòu)建生命周期
      1. clean(清理)
      2. default(默認(rèn),重點關(guān)注)
        1. default生命周期由下表中的phase組成
        2. phast 描述
          validate 確認(rèn)項目正確并且所有必要的信息均可用
          compile 編譯項目的源代碼(src/main)
          test 使用合適的單元測試框架測試編譯后的源代碼(src/main、src/test)
          package 獲取編譯后的代碼,并將其打包為可分發(fā)的格式,例如jar
          verify 對集成 測試的結(jié)果進行任何檢查,以確保符合質(zhì)量標(biāo)準(zhǔn)
          install 將軟件包安裝到本地存儲庫中,以作為本地其他項目中的依賴項
          deploy 在構(gòu)建環(huán)境中完成后,將最終軟件包復(fù)制到遠程存儲庫中,以便與其他開發(fā)人員和項目共享
      3. sit(站點)
    2. 構(gòu)建生命周期由phase(階段組成)
    3. phase可以跟plugin goal(插件目標(biāo))綁定
    4. 通過命令mvn 插件:help可以查看插件包含的所有的goal
        install示例:
                mvn install:install-file -Dfile=jar的路徑 -DgroupId=組織 -Dartifactid=庫名 -Dversion=版本 -Dpackaging=jar
        查看插件的所有g(shù)oal:以tomcat7插件為例
                mvn tomcat7:help 
    
  2. 插件配置詳解: 以maven-dependency-plugin為例:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>${project.build.directory}}/lib</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    在default生命周期的package階段執(zhí)行maven-dependency-plugin插件的copy-dependencies的任務(wù)(goal)

  3. dependency中scope的取值

    1. compile:默認(rèn)。編譯依賴關(guān)系在所有類路徑中均可用。此外,這些依賴會傳遞到相關(guān)項目
    2. provider:僅在編譯和測試類路徑上可用,并且不可傳遞,希望jdk或容器在運行時提供它
    3. runtime: 依賴關(guān)系不是編譯所必須的,而是運行所必須的,它在運行時和測試類路徑中,但不在編譯類路徑中
    4. test:依賴關(guān)系對于正常使用該應(yīng)用程序不是必須的,并且僅在測試編譯和執(zhí)行階段可以用。他不是可傳遞到的
    5. system:必須顯示提供jar的位置(可以通過systemPath標(biāo)簽指定),不會去mavenn倉庫中查找
  4. web項目

    1. 創(chuàng)建maven空項目后添加:<packaging>war</packaging>
    2. 添加javax.servlet-api的依賴,并且scope設(shè)置為provider
    3. 添加web.xml,路徑為:src/main/webapp/WEB-INF/web.xml,web.xml內(nèi)容如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
              http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
              version="4.0">
          </web-app>
      
  5. 利用tomcat7中的deploy發(fā)布項目到已運行的tomcat容器中

    1. 配置本地的tomcat的user用戶,在apache-tomcat-8.5.66/conf/tomcat-users.xml中新增如下內(nèi)容:

      <role rolename="manager-gui"/>
      <role rolename="manager-script"/>
      <user username="root" password="root" roles="manager-gui,manager-script"/>
      
    2. 啟動本機存在的tomcat

    3. maven的配置文件中添加server節(jié)點,內(nèi)容如下:

      <server>
        <id>tomcat8</id>
        <username>root</username>
        <password>root</password>
      </server>
      
    4. 配置插件,內(nèi)容如下:

      <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
              <uriEncoding>UTF-8</uriEncoding>
              <path>/crm_10</path>
              <update>true</update>
              <url>http://localhost:8080/manager/text</url>
                  <username>root</username>
                  <password>root</password>
              <server>tomcat8</server>
          </configuration>
      </plugin>
      

      server和username/password兩種方式選擇一種即可

      執(zhí)行mvn tomca7:deploy 發(fā)布到本地已經(jīng)運行的tomcat容器之中

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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