<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      maven的基本使用

      1、maven的基本介紹

      Maven 是一個項目管理工具,可以對 Java 項目進行構建、依賴管理。Maven 也可被用于構建和管理各種項目,例如 C#,Ruby,Scala 和其他語言編寫的項目。Maven利用一個中央信息片斷能管理一個項目的構建、報告和文檔等步驟。

      maven 可以管理 jar 文件,能自動下載 jar 和它的文檔、源代碼,能管理 jar 之間的依賴。Maven 能夠幫助開發者完成以下工作:構建、文檔生成、報告、依賴、SCMs、發布、分發、郵件列表。

       

      為什么需要maven?:由于 Java 的生態非常豐富,無論你想實現什么功能,都能找到對應的工具類,這些工具類都是以 jar 包的形式出現的,例如 Spring,SpringMVC、MyBatis、數據庫驅動,等等,都是以 jar 包的形式出現的,jar 包之間會有關聯,在使用一個依賴之前,還需要確定這個依賴所依賴的其他依賴,所以,當項目比較大的時候,依賴管理會變得非常麻煩臃腫,這是 Maven 解決的第一個問題。

      Maven 還可以處理多模塊項目。簡單的項目,單模塊分包處理即可,如果項目比較復雜,要做成多模塊項目,例如一個電商項目有訂單模塊、會員模塊、商品模塊、支付模塊…,一般來說,多模塊項目,每一個模塊無法獨立運行,要多個模塊合在一起,項目才可以運行,這個時候,借助 Maven 工具,可以實現項目的一鍵打包。

       

      2、安裝配置maven

      2.1、下載安裝maven

      Maven 是 Java 項目,因此必須先安裝 JDK,JDK 安裝配置可參考:http://www.rzrgm.cn/wenxuehai/p/9492355.html

      然后下載 maven,maven 的下載地址:http://maven.apache.org/download.cgi。下載路徑如下圖:

      新版本可能會有一些問題,我們推薦使用 3.3.9 版本,歷史版本下載可參考:https://blog.csdn.net/timexx/article/details/107827497

      官網下載可能比較慢,提供一個 3.3.9 版本下載鏈接:鏈接:https://pan.baidu.com/s/1dLUrGfmdQq6UpVwze2Xmyg    提取碼:dhrj

       

      安裝 maven 直接將下載的壓縮包解壓即可,解壓下載文件后可看到目錄如下:

       

      2.2、配置maven環境變量

      然后需要配置環境變量,配置環境變量跟 JDK 類似。

      1. 先在系統變量當中添加一個環境變量 MAVEN_HOME,變量值為 maven 的安裝目錄的根目錄,比如:E:\develop\apache-maven-3.3.9
      2. 然后找到系統變量 Path,給該變量的值后面添加:;%MAVEN_HOME%\bin   即可

      可參考:https://www.runoob.com/maven/maven-setup.html

       

      檢驗 maven 安裝是否成功,直接在命令窗口輸入 mvn -v ,如果有輸出 maven 的版本說明安裝成功:

       

      3、maven約定的目錄結構

      Maven 提倡使用一個共同的標準目錄結構,Maven 使用約定優于配置的原則,大家盡可能的遵守這樣的目錄結構。一個使用Maven管理的普通的Java項目,它的目錄結構默認如下:

       MavenProject
              |-- pom.xml   maven項目的配置文件。對項目中的所有jar包依賴進行統一管理
              |-- src
                  |-- main
                       | -- java  存放項目源代碼
                       | -- resources(可省略)  存放項目配置文件 .xml等 
      
                  |-- test(可省略)
                       | -- java  存放單元測試源代碼
                       | -- resources   存放單元測試資源文件 .xml等
      
              |-- target(由maven生成)  存放所有編譯、打包生成的文件
                  |-- classes  存放項目源代碼編譯輸出的字節碼文件
                  |-- test-classes  存放測試代碼編譯輸出的字節碼文件

      默認情況下,項目在編譯過后,會將 src/main/java 編譯過后的字節碼文件和 src/main/resource 中的文件放在 target/classes 目錄下。但是,src/main/java 目錄下的非包且非java的文件在編譯過后并不會自動被拷貝在 target/classes 目錄下,而是會丟失。如果我們想要將 src/main/java 目錄下的非包且非java的文件也一并拷貝在 target/classes 目錄下,則需要在 pom.xml 文件的 build 標簽下進行配置。

       

      4、maven倉庫配置

      Maven 倉庫是項目中依賴的第三方庫。在 Maven 中,任何一個依賴、插件或者項目構建的輸出,都可以稱之為構件。Maven 倉庫能幫助我們管理構件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

      Maven 倉庫有以下幾種類型:

      • 本地倉庫(local)
      • 中央倉庫
      • 私服倉庫

      除本地倉庫以外的倉庫都可以叫做遠程倉庫。

      當項目編譯時,Maven首先從本地倉庫中尋找項目所需的Jar包,若本地倉庫沒有,再到Maven的中央倉庫下載所需Jar包。這 3 個倉庫中,jar 包的查找順序如下:

       

      4.1、本地倉庫

      Maven 的本地倉庫,在安裝 Maven 后并不會創建,它是在第一次執行 maven 命令的時候才被創建。默認位置:當前用戶名\.m2\repository。

      運行 Maven 的時候,Maven 所需要的任何構件都是直接從本地倉庫獲取的。如果本地倉庫沒有,它會首先嘗試從遠程倉庫下載構件至本地倉庫,然后再使用本地倉庫的構件。

      本地倉庫默認位置在 當前用戶名\.m2\repository,我們也可以修改本地倉庫的位置。在 maven 安裝目錄下的 conf/settings.xml 文件中可以修改,在該配置文件中可以看到 localRepository 節點被注釋掉了,我們可以直接復制該節點,將值修改為本地路徑即可,如下:

        <!-- localRepository
         | The path to the local repository maven will use to store artifacts.
         |
         | Default: ${user.home}/.m2/repository
        <localRepository>/path/to/local/repo</localRepository>
        -->
        <localRepository>E:/develop/maven_repository</localRepository>

      當你運行 Maven 命令,Maven 會將下載依賴的文件放到你指定的路徑中。

       

      4.2、中央倉庫

      中央倉庫屬于遠程倉庫的一種,Maven 中央倉庫是由 Maven 社區提供的倉庫,其中包含了絕大多數流行的開源Java構件,以及源碼、作者信息、SCM、信息、許可證信息等,一般來說,簡單的Java項目依賴的包都可以在這里下載到。

      中央倉庫需要通過網絡才能訪問。低版本的 maven 中,比如 maven-2.0.10,可以在 ${M2_HOME}/lib/maven-2.0.10-uber.jar  中找到 pom.xml 配置文件。但是在 3.xxx 版本及之后的版本,在 maven 安裝目錄下的 lib/maven-model-builder-${version}.jar 下,可以在 \org\apache\maven\model\pom-4.0.0.xml 取到 pom-4.0.0.xml 配置文件,該配置文件是所有 Maven POM 的父 POM,所有Maven項目繼承該配置。

      你可以在 pom-4.0.0.xml 配置文件中找到如下配置信息:

      <repositories>
          <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
              <enabled>false</enabled>
            </snapshots>
          </repository>
      </repositories>

      可以看到,中央倉庫的id為central,遠程url地址為 https://repo.maven.apache.org/maven2,它關閉了snapshot版本構件下載的支持。

       

      4.3、私服倉庫

      私服也屬于遠程倉庫的一種,一般來說,私服倉庫搭建在公司局域網內,專供公司內部開發人員提供服務,不是對外使用的。

      本地倉庫(本機)--->私服(局域網)--->中心倉庫(外部網絡)

       

      4.4、配置中央倉庫

      默認的中央倉庫地址為 https://repo.maven.apache.org/maven2,但是國外的遠程庫下載速度比較慢,甚至可能會出現無法訪問的問題,此時我們可以配置國內的倉庫,比如阿里云中央倉庫等。

       

      4.4.1、在項目的 pom.xml 文件中配置中央倉庫

      配置我們自己的遠程倉庫有很多好處,比如你有一個局域網的遠程倉庫,使用該倉庫能大大提高下載速度,繼而提高構建速度,也有可能你依賴的一個 jar 在 central 中找不到,它只存在于某個特定的公共倉庫,這樣你也不得不添加那個遠程倉庫的配置。

      我們可以在項目的 pom.xml 文件中配置遠程倉庫。比如下面配置遠程倉庫指向阿里云倉庫:

      <?xml version="1.0" encoding="UTF-8"?>
      
      <project 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/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
      
        <repositories>
          <repository>
            <id>maven-ali</id>
            <url>http://maven.aliyun.com/nexus/content/repositories/central</url>
            <releases>
              <enabled>true</enabled>
            </releases>
            <snapshots>
              <enabled>true</enabled>
              <updatePolicy>always</updatePolicy>
              <checksumPolicy>fail</checksumPolicy>
            </snapshots>
          </repository>
        </repositories>
      
        <groupId>org.example</groupId>
        <artifactId>springmvc_maven_test01</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
      
         ...
      </project>

      <repositories>下面可以添加多個<repository> ,每個<repository>都有它唯一的ID,一個描述性的name,以及最重要的遠程倉庫的url。<releases><enabled>true</enabled></releases> 告訴Maven可以從這個倉庫下載 releases 版本的構件,而<snapshots><enabled>false</enabled></snapshots> 告訴Maven不要從這個倉庫下載 snapshot 版本的構件,禁止從公共倉庫下載snapshot構件是推薦的做法,因為這些構件不穩定,且不受你控制,你應該避免使用。當然,如果你想使用局域網內組織內部的倉庫,你可以激活snapshot的支持。

       

      4.4.2、在maven安裝目錄下的settings.xml文件配置

      在項目的 pom.xml 文件中可以配置中央倉庫,但是這樣每個項目都需要配置一遍,需要重復工作。我們可以直接在 maven 安裝目錄下的 conf/settings.xml 文件中配置中央倉庫。

      找到 mirrors 標簽,添加如下配置:

      <mirrors>
          <!-- mirror
           | Specifies a repository mirror site to use instead of a given repository. The repository that
           | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
           | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
           |
          <mirror>
            <id>mirrorId</id>
            <mirrorOf>repositoryId</mirrorOf>
            <name>Human Readable Name for this Mirror.</name>
            <url>http://my.repository.com/repo/path</url>
          </mirror>
           -->
           <mirror>
              <id>alimaven</id>
              <name>aliyun maven</name>
              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
              <mirrorOf>central</mirrorOf>
          </mirror>
        </mirrors>

      可以看到 <mirrorOf> 的值是 central,意思就是用以上鏡像替代 Maven 自帶的中央倉庫。

       

      5、maven項目配置文件pom.xml

      maven 安裝目錄下的 setting.xml 主要用于配置 maven 的運行環境等一系列通用的屬性,是全局級別的配置文件。而 pom.xml 主要描述了項目的基本信息,用于描述項目如何構建,聲明項目依賴等等,是項目級別的配置文件。執行任務或目標時,Maven 會在當前目錄中查找 POM,然后讀取 POM,獲取所需的配置信息,然后執行目標。

      pom(project object model)即項目對象模型,maven 把一個項目的結構和內容抽象成一個模型,在 xml 文件中進行聲明,以方便進行構建和描述。

      一個基本的pom.xml文件配置如下:

      <project 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/maven-4.0.0.xsd">
       
          <!-- maven模型的版本,對于maven2和maven3來說,只能是4.0.0 -->
          <modelVersion>4.0.0</modelVersion>
      <!-- 公司或者組織的唯一標志,一般是公司域名的倒寫,或者是公司域名倒寫+項目名。并且配置時生成的路徑也是由此生成, 如com.companyname.project-group,maven會將該項目打成的jar包放本地路徑:/com/companyname/project-group --> <groupId>com.companyname.project-group</groupId> <!-- 項目的唯一ID,一個groupId下面可以有多個項目,通過artifactId來區分 --> <artifactId>project</artifactId> <!-- 項目的版本號 --> <version>1.0.0</version> </project>

      所有 POM 文件都需要 <project> 標簽元素和該標簽下的三個必需字段:groupId,artifactId,version。 

      groupId + artifactId + version = 坐標,坐標可用于標識互聯網中的唯一資源。在Maven中,坐標是Jar包的唯一標識,Maven通過坐標在倉庫中找到項目所需的Jar包。

       

      5.1、pom.xml配置文件常見標簽

      pom.xml 配置文件的常見標簽:

      • <package>:項目打包的類型,例如jar、war、ear、pom等
      • <dependencies>:項目相關的所有依賴
      • <properties>:定義一些常量
      • <build>:設置 maven 在進行項目的構建時的配置

       使用示例如下:

      <project 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/maven-4.0.0.xsd">
       
          <groupId>com.companyname.project-group</groupId>
          <artifactId>project</artifactId>
          <version>1.0.0</version>
      
          <!--項目打包的類型,例如jar、war、ear、pom等,默認是jar->
          <packaging>jar</packaging>
      
          <!--項目相關的所有依賴 -->
          <dependencies>
               <dependency>
                    <groupId>xxx</groupId>
                    <artifactId>xxx</artifactId>
                    <version>xxx</version>
               </dependency>
      
               <dependency>
                      ...
               </dependency>
           </dependencies>
      
           <!-- 在properties標簽中可以自定義一些標簽,以此來定義一些常量,在pom中的其它地方可以直接引用,使用方式如 :${test.uuid}。比如我們可以定義一些共用的依賴包版本號,這樣版本號需要修改時只需修改這里一個地方即可 -->  
          <properties>  
              <file.encoding>UTF-8</file.encoding>  
              <test.uuid>123</test.uuid>
              <java.source.version>1.5</java.source.version>  
          </properties>  
      
          <build>  
               <!-- 打包生成的包的文件名,默認值是${artifactId}-${version}。 -->  
              <finalName>myPorjectName</finalName>  
        
              <!-- 構建產生的所有文件存放的目錄,默認為${basedir}/target,即項目根目錄下的target -->  
              <directory>${basedir}/target</directory>  
              ...
          </build>  
      </project>

       

      6、maven的三套生命周期

      Maven的生命周期就是對所有的構建過程進行抽象和統一。包含了項目的清理、初始化、編譯、測試、打包、集成測試、驗證、部署和站點生成等幾乎所有的構建步驟。Maven的生命周期是抽象的,即生命周期不做任何實際的工作,實際任務由插件完成,類似于設計模式中的模板方法。

      Maven有三套相互獨立的生命周期,分別是

      • clean:項目清理的處理
      • default(build):項目部署的處理
      • site:項目站點文檔創建的處理

      每套生命周期各自包含一些階段(phase),這些 phase 就相當于 Maven 提供的統一的接口,然后這些 phase 的實現由 Maven 的插件來完成。階段是有順序的,后面的階段依賴于前面的階段。各個生命周期相互獨立,一個生命周期的階段前后依賴。

      比如:執行 mvn clean 命令:將會調用clean生命周期的 clean 階段,實際上會執行 pre-clean 和 clean 階段;執行 mvn test 命令:調用 default 生命周期的 test 階段,實際執行 test 以及之前所有階段;執行 mvn clean install:調用 clean 生命周期的 clean 階段和 default 的install 階段,實際執行 pre-clean 和 clean,install 以及之前所有階段

       

      6.1、clean生命周期

      clean生命周期:清理項目,包含三個階段:

      1. pre-clean:執行清理前需要完成的工作
      2. clean:清理上一次構建生成的文件
      3. post-clean:執行清理后需要完成的工作

       

      6.2、default(build)生命周期

      default生命周期:構建項目,重要的 phase(階段)如下:

      1. validate:驗證工程是否正確,所有需要的資源是否可用。
      2. compile:編譯項目的源代碼。  
      3. test-compile:編譯測試源碼
      4. test:使用合適的單元測試框架來測試已編譯的源代碼。
      5. Package:把已編譯的代碼打包成可發布的格式,比如jar。
      6. integration-test:如有需要,將包處理和發布到一個能夠進行集成測試的環境。
      7. verify:運行所有檢查,驗證包是否有效且達到質量標準。
      8. install:把包安裝到maven本地倉庫,可以被其他工程作為依賴來使用。
      9. Deploy:在集成或者發布環境下執行,將最終版本的包拷貝到遠程的repository,使得其他的開發者或者工程可以共享。

       

      6.3、site生命周期

      site生命周期:建立和發布項目站點,phase如下

      1. pre-site:生成項目站點之前需要完成的工作
      2. site:生成項目站點文檔
      3. post-site:生成項目站點之后需要完成的工作
      4. site-deploy:將項目站點發布到服務器

       

      7、maven的常用命令

      maven常用命令如下:

      • mvn clean:清理。該命令會刪除 maven 編譯生成的目錄,即 target 目錄,但是已經 install 到本地倉庫中的包不會刪除。
      • mvn compile:編譯項目主代碼,即 src/main 目錄下的 java 程序。編譯完成后會在項目根目錄下生成一個 target/classes 目錄,里面存放著 java 程序編譯之后生成的字節碼文件。并且 src/main/resource 目錄下的文件都會被放到 target/classes 目錄下
      • mvn test-compile:編譯項目中 src/test目錄下的測試代碼。編譯完成后會在項目根目錄下生成一個 target/test-classes 目錄,里面存放著測試代碼編譯之后生成的字節碼文件。
      • mvn test:運行所有的測試代碼
      • mvn package:打包。按照 pom.xml 中的配置,將項目打成 jar 包或者 war 包。 
      • mvn install:安裝本項目包到本地倉庫,這樣項目包可以用作其他本地項目的依賴。
      • mvn deploy:部署。將最終的項目包復制到遠程倉庫中與其他開發者和項目共享。

      在命令行 CMD 上執行以上命令,需在命令行進入 pom.xml 所在目錄下即項目的根目錄下才能執行。

       

      7.1、maven如何將web項目打包成war包

      maven 將 java web 項目打包成 war 包,首先確認一下 pom.xml 中的配置的打包類型是打包成 war 包的:

       

      確認好之后,通過命令行工具切換至該 web 項目的根目錄下,執行 mvn clean package 命令即可:

       

      打包完成后,可以在該項目的根目錄下的 target 文件夾下找到一個 war 包。將該 war 包直接放到 tomcat 的 webapps 目錄下即可部署成功。

       

      部署:

       

      8、maven的插件

       Maven 生命周期的每一個階段的具體實現都是由 Maven 插件實現的,Maven 實際上是一個插件框架,它的核心并不執行任何具體的構建任務,所有這些任務都交給插件來完成。例如編譯源代碼是由maven- compiler-plugin完成的。進一步說,每個任務對應了一個插件目標(goal),每個插件會有一個或者多個目標,

      例如 maven- compiler-plugin 的 compile 目標用來編譯位于 src/main/java/ 目錄下的主源碼,testCompile 目標用來編譯位于 src/test/java/ 目錄下的測試源碼。我們在輸入 mvn 命令的時候 比如 mvn clean,clean 對應的就是 Clean 生命周期中的 clean 階段。但是 clean 的具體操作是由 maven-clean-plugin 插件來實現的。

       

      用戶可以通過兩種方式調用 Maven 插件目標。第一種方式是將插件目標與生命周期階段綁定,這樣用戶在命令行只是輸入生命周期階段而已,例如輸入 mvn compile 命令,Maven 默認會將 maven-compiler-plugin 的 compile 目標與 compile 生命周期階段綁定,因此命令mvn compile 實際上是先定位到 compile這一生命周期階段,然后再根據綁定關系調用maven-compiler-plugin的compile目標。

      第二種方式是直接在命令行指定要執行的插件目標,例如 mvn archetype:generate 就表示調用 maven-archetype-plugin 的 generate 目標,這種帶冒號的調用方式與生命周期無關。

      插件配置示例:

      <project 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/maven-4.0.0.xsd">
       
          <groupId>com.companyname.project-group</groupId>
          <artifactId>project</artifactId>
          <version>1.0.0</version>
      
      
          <build>  
              <!-- 配置插件 -->  
                 <plugins>  
                       <plugin>  
                            <groupId>org.apache.maven.plugins</groupId>
                            <!-- 插件名稱 -->   
                            <artifactId>maven-compiler-plugin</artifactId>
                            <version>3.8.1</version>  
      
                            <!-- 在這里給插件進行一些配置 -->   
                            <configuration>  
                                    <source>1.6</source>    <!-- 源代碼使用的JDK版本 -->     
                                    <target>1.6</target>    <!-- 需要生成的目標class文件的編譯版本。一般而言,target與source是保持一致的,但是,有時候為了讓程序能在其他版本的jdk中運行,會存在target不同于source的情況 -->
                             </configuration>  
                        </plugin> 
                  </plugins>  
          </build>  
      </project>

       

      9、maven的依賴管理

      依賴是 maven 項目引用的資源架包,依賴范圍就是這些資源 jar 包在 maven 項目中的作用范圍。maven 項目通過依賴范圍來控制何時引用資源架包,比如我們需要在編譯階段用到某個 jar 包,我們可以指定該 jar 包的作用范圍為 compile。 

      maven 的依賴范圍用 scope 關鍵字表示,有五種依賴范圍:

      • compile:依賴范圍的默認值,如果maven項目中引入一個依賴,沒有添加scope依賴范圍,那么默認的就是compile。這表示該 maven 項目在編譯、測試、打包、安裝、部署階段都需要引用該依賴。
      • test:表示該依賴包只和測試相關。
      • provided:表示maven項目只在編譯和測試時引用該依賴,如果將項目打包運行時,則不會引入該依賴。如 servlet-api,這是 web 項目常用的架包,在項目編譯和測試時都需要用到該架包,如果項目需要運行,則需要將項目部署到 tomcat 或其他 web 服務器上,但是 tomcat 中自帶了 servlet-api,如果 maven 項目中引入了 servlet-api,那么會和 tomcat 中的 servlet-api 產生沖突,所以可以使用 provided 限定 servlet-api,讓maven項目在打包時不再引入 servlet-api。

      • runtime和system:這兩個是不常用的。runtime 表示在測試和部署運行階段需要引入該依賴,在編譯階段不引入該依賴,如JDBC的驅動包,因為JDBC驅動是通過反射機制加載的,所以不參與項目編譯過程。system 的作用域和 provided 類似,表示引用倉庫之外的依賴,需要通過 systemPath 指定本地依賴的路徑,除了特殊情況基本不使用。

        依賴范圍 是否作用于編譯階段 是否作用于測試執行階段 是否作用于部署運行階段
      1 compile(默認值)
      2 test
      3 provided
      4 runtime
      5 system

       

       

       

       

       

       

       

       比如一個 java EE 項目,有 compile 和 test 作用范圍的依賴包。因為 compile 需要作用在打包部署運行階段,所以 compile 作用范圍的依賴包在打包過后會被 maven 自動放在  項目war包/WEB-INF/lib 目錄下;而 test 作用范圍的依賴包則不會出現在 war 包中。

       配置示例,Junit 只在測試階段才起作用:

      <?xml version="1.0" encoding="UTF-8"?>
      
      <project 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/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
      
        <groupId>org.example</groupId>
        <artifactId>maven_ee_01</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
      
        <dependencies>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
          </dependency>
        </dependencies>
      </project>

       

      10、maven中的資源拷貝插件

      默認情況下,項目在編譯過后,會將 src/main/java 編譯過后的字節碼文件和 src/main/resource 中的文件放在 target/classes 目錄下。但是,src/main/java 目錄下的非包且非java的文件在編譯過后并不會自動被拷貝在 target/classes 目錄下,而是會丟失。如果我們想要將 src/main/java 目錄下的非包且非java的文件也一并拷貝在 target/classes 目錄下,則需要在 pom.xml 文件的 build 標簽下進行配置。

      如果我們需要將 src/main/java 目錄下的資源文件也拷貝到編譯后(target/classes目錄對應的文件夾下)或者打包后的目錄下的話,就可以使用資源拷貝插件。示例如下:

      <?xml version="1.0" encoding="UTF-8"?>
      
      <project 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/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
      
        <groupId>org.example</groupId>
        <artifactId>maven_ee_01</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>war</packaging>
      
        <build>
          <!--resources標簽需配置在<build></build>中,用來指定讀取的配置文件或文件夾中的文件 -->
          <resources>
            <resource>
              <directory>src/main/java</directory>
              <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
              </includes>
      
              <!--filtering是否開啟替換標簽,若文件中有類似${key}這樣的配置,就會根據maven的配置進行覆蓋,讓其使用真實值來填寫
      true表示開啟替換,false表示不開啟替換,無此標簽表示不開啟替換
      真實值是從pom中profiles的配置里面取的-->
              <filtering>false</filtering>
            </resource>
          </resources>
        </build>
      </project>

       

      posted @ 2021-05-04 14:03  wenxuehai  閱讀(1197)  評論(0)    收藏  舉報
      //右下角添加目錄
      主站蜘蛛池模板: 日韩精品福利视频在线观看| 国产微拍一区二区三区四区| 宁波市| 少妇熟女高潮流白浆| 黑人大荫道bbwbbb高潮潮喷| 国产精品爽黄69天堂a| 中牟县| 成人国产精品一区二区网站公司| 国产精品久久无中文字幕 | 激情亚洲内射一区二区三区| 国产精品女同一区三区五区| 林口县| 欧美日本精品一本二本三区| 精品久久久久国产免费| 噜噜综合亚洲av中文无码| 日韩精品毛片一区到三区| chinese极品人妻videos| 天天澡日日澡狠狠欧美老妇| 久久亚洲女同第一区综合| 亚洲国产日韩精品久久| 美女裸体十八禁免费网站| 国产一区二区在线观看粉嫩| 日韩精品中文字幕有码| 97人人超碰国产精品最新| 蜜臀av一区二区精品字幕| 国产免费踩踏调教视频| 中文字幕日韩国产精品| 乱老年女人伦免费视频| 国产乱人伦AV在线麻豆A| 深夜福利资源在线观看| 亚洲午夜福利精品无码不卡| 麻豆精产国品一二三产 | 在线aⅴ亚洲中文字幕| 色综合一本到久久亚洲91| 亚洲中文字幕av天堂| 国产精品三级黄色小视频| 亚洲国产精品无码一区二区三区| 亚洲高清成人av在线| 国产成人午夜精品影院| 九九热在线精品视频观看| 国产91精选在线观看|