最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven的pom.xml文件結(jié)構(gòu)中的build

 更新時(shí)間:2023年07月26日 08:58:24   作者:易生一世  
本文主要介紹了Maven的pom.xml文件結(jié)構(gòu)中的build,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在Maven的pom.xml文件中,Build相關(guān)配置包含兩個(gè)部分,一個(gè)是<build>,另一個(gè)是<reporting>,這里我們只介紹<build>。

1. 在Maven的pom.xml文件中,存在如下兩種<build>

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <!-- "Project Build" contains elements of the BaseBuild set and the Build set-->
  <build>...</build>
  <profiles>
    <profile>
      <!-- "Profile Build" contains elements of the BaseBuild set only -->
      <build>...</build>
    </profile>
  </profiles>
</project>

說(shuō)明:

一種<build>被稱為Project Build,即是<project>的直接子元素。另一種<build>被稱為Profile Build,即是<profile>的直接子元素。

Profile Build包含了基本的build元素,而Project Build還包含兩個(gè)特殊的元素,即各種<...Directory>和<extensions>。

2. Profile Build和Project Build共用的基本build元素

1) 示例如下

<build>
  <defaultGoal>install</defaultGoal>
  <directory>${basedir}/target</directory>
  <finalName>${artifactId}-${version}</finalName>
  ...
</build>

說(shuō)明:

  • defaultGoal,執(zhí)行構(gòu)建時(shí)默認(rèn)的goal或phase,如jar:jar或者package等
  • directory,構(gòu)建的結(jié)果所在的路徑,默認(rèn)為${basedir}/target目錄
  • finalName,構(gòu)建的最終結(jié)果的名字,該名字可能在其他plugin中被改變

2) <resources>

資源往往不是代碼,無(wú)需編譯,而是一些properties或XML配置文件,構(gòu)建過(guò)程中會(huì)往往會(huì)將資源文件從源路徑復(fù)制到指定的目標(biāo)路徑。

<resources>給出各個(gè)資源在Maven項(xiàng)目中的具體路徑。示例如下:

  <build>
    ...
    <filters>
      <filter>filters/filter1.properties</filter>
    </filters>
    <resources>
      <resource>
        <targetPath>META-INF/plexus</targetPath>
        <filtering>false</filtering>
        <directory>${basedir}/src/main/plexus</directory>
        <includes>
          <include>configuration.xml</include>
        </includes>
        <excludes>
          <exclude>**/*.properties</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      ...
    </testResources>
    ...
  </build>

說(shuō)明:

  • resources,build過(guò)程中涉及的資源文件
  • targetPath,資源文件的目標(biāo)路徑
  • filtering,構(gòu)建過(guò)程中是否對(duì)資源進(jìn)行過(guò)濾,默認(rèn)false
  • directory,資源文件的路徑,默認(rèn)位于${basedir}/src/main/resources/目錄下
  • includes,一組文件名的匹配模式,被匹配的資源文件將被構(gòu)建過(guò)程處理
  • excludes,一組文件名的匹配模式,被匹配的資源文件將被構(gòu)建過(guò)程忽略。同時(shí)被includes和excludes匹配的資源文件,將被忽略。
  • filters,給出對(duì)資源文件進(jìn)行過(guò)濾的屬性文件的路徑,默認(rèn)位于${basedir}/src/main/filters/目錄下。屬性文件中定義若干鍵值對(duì)。在構(gòu)建過(guò)程中,對(duì)于資源文件中出現(xiàn)的變量(鍵),將使用屬性文件中該鍵對(duì)應(yīng)的值替換。
  • testResources,test過(guò)程中涉及的資源文件,默認(rèn)位于${basedir}/src/test/resources/目錄下。這里的資源文件不會(huì)被構(gòu)建到目標(biāo)構(gòu)件中

3) <plugins>

<plugins>給出構(gòu)建過(guò)程中所用到的插件。

  <build>
    ...
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.6</version>
        <extensions>false</extensions>
        <inherited>true</inherited>
        <configuration>
          <classifier>test</classifier>
        </configuration>
        <dependencies>...</dependencies>
        <executions>...</executions>
      </plugin>
    </plugins>
  </build>

說(shuō)明:

  • groupId
  • artifactId
  • version
  • extensions,是否加載該插件的擴(kuò)展,默認(rèn)false
  • inherited,該插件的configuration中的配置是否可以被(繼承該P(yáng)OM的其他Maven項(xiàng)目)繼承,默認(rèn)true
  • configuration,該插件所需要的特殊配置,在父子項(xiàng)目之間可以覆蓋或合并
  • dependencies,該插件所特有的依賴類庫(kù)
  • executions,該插件的某個(gè)goal(一個(gè)插件中可能包含多個(gè)goal)的執(zhí)行方式。一個(gè)execution有如下設(shè)置:
    • id,唯一標(biāo)識(shí)
    • goals,要執(zhí)行的插件的goal(可以有多個(gè)),如<goal>run</goal>
    • phase,插件的goal要嵌入到Maven的phase中執(zhí)行,如verify
    • inherited,該execution是否可被子項(xiàng)目繼承
    • configuration,該execution的其他配置參數(shù)

4) <pluginManagement>

在<build>中,<pluginManagement>與<plugins>并列,兩者之間的關(guān)系類似于<dependencyManagement>與<dependencies>之間的關(guān)系。<pluginManagement>中也配置<plugin>,其配置參數(shù)與<plugins>中的<plugin>完全一致。只是,<pluginManagement>往往出現(xiàn)在父項(xiàng)目中,其中配置的<plugin>往往通用于子項(xiàng)目。子項(xiàng)目中只要在<plugins>中以<plugin>聲明該插件,該插件的具體配置參數(shù)則繼承自父項(xiàng)目中<pluginManagement>對(duì)該插件的配置,從而避免在子項(xiàng)目中進(jìn)行重復(fù)配置。

3. Project Build特有的<...Directory>

往往配置在父項(xiàng)目中,供所有父子項(xiàng)目使用。示例如下:

  <build>
    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
    <scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
    <outputDirectory>${basedir}/target/classes</outputDirectory>
    <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
    ...
  </build>
</project>

目錄可以使用絕對(duì)路徑,如示例所示。如果使用相對(duì)路徑,則所有的相對(duì)路徑都是在${basedir}目錄下。

4. Project Build特有的<extensions>

<extensions>是執(zhí)行構(gòu)建過(guò)程中可能用到的其他工具,在執(zhí)行構(gòu)建的過(guò)程中被加入到classpath中。

也可以通過(guò)<extensions>激活構(gòu)建插件,從而改變構(gòu)建的過(guò)程。

通常,通過(guò)<extensions>給出通用插件的一個(gè)具體實(shí)現(xiàn),用于構(gòu)建過(guò)程。

<extensions>的使用示例如下:

? <build>
? ? ...
? ? <extensions>
? ? ? <extension>
? ? ? ? <groupId>org.apache.maven.wagon</groupId>
? ? ? ? <artifactId>wagon-ftp</artifactId>
? ? ? ? <version>1.0-alpha-3</version>
? ? ? </extension>
? ? </extensions>
? ? ...
? </build>
</project>

到此這篇關(guān)于Maven的pom.xml文件結(jié)構(gòu)中的build的文章就介紹到這了,更多相關(guān)Maven pom.xml build內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java 對(duì)文件夾目錄進(jìn)行深度遍歷實(shí)例代碼

    java 對(duì)文件夾目錄進(jìn)行深度遍歷實(shí)例代碼

    這篇文章主要介紹了java 對(duì)文件夾目錄進(jìn)行深度遍歷實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 新手入門Jvm--jvm概覽

    新手入門Jvm--jvm概覽

    JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的
    2021-06-06
  • 基于Java字符編碼的使用詳解

    基于Java字符編碼的使用詳解

    本篇文章對(duì)Java字符編碼的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • java多線程編程之Synchronized關(guān)鍵字詳解

    java多線程編程之Synchronized關(guān)鍵字詳解

    這篇文章主要為大家詳細(xì)介紹了java多線程編程之Synchronized關(guān)鍵字,感興趣的朋友可以參考一下
    2016-05-05
  • Java如何向指定文件操作一段內(nèi)容(增加,刪除均可使用本方法)

    Java如何向指定文件操作一段內(nèi)容(增加,刪除均可使用本方法)

    這篇文章主要介紹了Java如何向指定文件操作一段內(nèi)容(增加,刪除均可使用本方法),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java操作Elasticsearch?rest-high-level-client?的基本使用

    Java操作Elasticsearch?rest-high-level-client?的基本使用

    這篇文章主要介紹了Java操作Elasticsearch?rest-high-level-client?的基本使用,本篇主要講解一下?rest-high-level-client?去操作?Elasticsearch的方法,結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2022-10-10
  • java 淺析代碼塊的由來(lái)及用法

    java 淺析代碼塊的由來(lái)及用法

    所謂代碼塊是指用"{}"括起來(lái)的一段代碼,根據(jù)其位置和聲明的不同,可以分為普通代碼塊、構(gòu)造塊、靜態(tài)塊、和同步代碼塊。如果在代碼塊前加上 synchronized關(guān)鍵字,則此代碼塊就成為同步代碼塊
    2021-10-10
  • Java程序員必看的RAG入門實(shí)戰(zhàn)教程

    Java程序員必看的RAG入門實(shí)戰(zhàn)教程

    本文詳細(xì)介紹了RAG(檢索增強(qiáng)生成)技術(shù),旨在解決大模型在回答企業(yè)內(nèi)部具體問(wèn)題時(shí)的幻覺和靜態(tài)知識(shí)問(wèn)題,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2026-04-04
  • 使用Mybatis的PageHelper分頁(yè)工具的教程詳解

    使用Mybatis的PageHelper分頁(yè)工具的教程詳解

    這篇文章主要介紹了使用Mybatis的PageHelper分頁(yè)工具的教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 解讀SpringMVC?請(qǐng)求參數(shù)接收

    解讀SpringMVC?請(qǐng)求參數(shù)接收

    這篇文章主要介紹了SpringMVC請(qǐng)求參數(shù)接收的相關(guān)操作,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-07-07

最新評(píng)論

巫山县| 湖口县| 阿图什市| 昌图县| 札达县| 张家港市| 宝应县| 腾冲县| 泊头市| 邵武市| 麟游县| 新乐市| 巴林右旗| 丰城市| 宁蒗| 洞口县| 焦作市| 汽车| 柏乡县| 白沙| 康乐县| 许昌市| 寻乌县| 濮阳市| 平山县| 班玛县| 三河市| 榆社县| 雅江县| 南陵县| 固阳县| 桃园市| 伊春市| 四平市| 凤山市| 嵩明县| 新野县| 红桥区| 叙永县| 兖州市| 宿迁市|