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

Maven快速入門和常用配置方式

 更新時(shí)間:2026年05月30日 10:40:32   作者:Yweir  
Apache?Maven?是一個(gè)強(qiáng)大的?Java?項(xiàng)目管理工具,通過項(xiàng)目對(duì)象模型(POM)和生命周期管理構(gòu)建、依賴和文檔,?它支持依賴管理、構(gòu)建繼承和站點(diǎn)生成,簡(jiǎn)化構(gòu)建過程并確保環(huán)境一致性,?關(guān)鍵指令如mvn?clean、mvn?compile和mvn?package等幫助完成構(gòu)建任務(wù)

介紹

Apache Maven 是一個(gè) Java 項(xiàng)目管理工具,它基于項(xiàng)目對(duì)象模型(POM),通過一系列標(biāo)準(zhǔn)構(gòu)建規(guī)則來管理項(xiàng)目的構(gòu)建、依賴關(guān)系和文檔。

Maven 的特點(diǎn)

依賴管理:

  • Maven 使用一個(gè)中央倉庫(如 Maven Central Repository)來管理項(xiàng)目的依賴項(xiàng)。
  • 依賴項(xiàng)會(huì)被自動(dòng)解析并下載到本地倉庫,減少了手動(dòng)配置和依賴沖突的問題。

生命周期和插件:

  • Maven 定義了一系列的構(gòu)建生命周期,每個(gè)生命周期又包含了多個(gè)構(gòu)建階段。常見的生命周期包括 clean、default(build)、site 等。
  • 構(gòu)建階段通過插件來實(shí)現(xiàn)具體的構(gòu)建邏輯,比如編譯源代碼、運(yùn)行測(cè)試、打包、部署等。

項(xiàng)目對(duì)象模型 (POM):

  • Maven 使用 XML 文件(pom.xml)來描述項(xiàng)目的配置信息,稱為項(xiàng)目對(duì)象模型(Project Object Model, POM)。
  • POM 包含了項(xiàng)目的基本信息(如名稱、版本號(hào)、依賴關(guān)系等),以及構(gòu)建過程中的配置信息。

路徑約定優(yōu)于配置:

  • Maven 強(qiáng)調(diào)路徑約定(convention over configuration),簡(jiǎn)化了構(gòu)建過程。例如,默認(rèn)情況下 Maven 會(huì)知道在哪里查找源代碼、測(cè)試代碼、資源文件等。

構(gòu)建繼承:

  • Maven 支持多模塊項(xiàng)目,并允許子項(xiàng)目繼承父項(xiàng)目的配置,從而減少重復(fù)配置。

站點(diǎn)生成:

  • Maven 可以自動(dòng)生成項(xiàng)目的文檔站點(diǎn),展示項(xiàng)目的文檔、依賴圖、報(bào)告等信息。

環(huán)境一致性:

  • Maven 有助于確保不同開發(fā)環(huán)境之間的一致性,因?yàn)闃?gòu)建腳本是聲明式的而不是過程式的。

可移植性:

  • Maven 的構(gòu)建腳本是平臺(tái)無關(guān)的,可以在任何支持 Java 的平臺(tái)上運(yùn)行

Maven 的優(yōu)勢(shì)

  • 簡(jiǎn)化構(gòu)建過程:Maven 提供了一套標(biāo)準(zhǔn)的構(gòu)建流程,使得從編譯、測(cè)試到打包、部署的過程更加簡(jiǎn)單和一致。
  • 依賴管理:自動(dòng)化的依賴管理避免了手動(dòng)管理依賴所帶來的麻煩。
  • 可維護(hù)性和可擴(kuò)展性:POM 和生命周期的設(shè)計(jì)使得項(xiàng)目的維護(hù)和擴(kuò)展變得更加容易。
  • 團(tuán)隊(duì)協(xié)作:由于 Maven 的構(gòu)建過程是標(biāo)準(zhǔn)化的,因此它非常適合團(tuán)隊(duì)協(xié)作,減少了因構(gòu)建環(huán)境差異導(dǎo)致的問題

Maven 常用指令分類

構(gòu)建命令

指令描述
mvn clean清除項(xiàng)目的工作目錄,移除之前構(gòu)建產(chǎn)生的文件。
mvn compile編譯項(xiàng)目的源代碼。
mvn test運(yùn)行項(xiàng)目中的單元測(cè)試。
mvn package打包項(xiàng)目,通常會(huì)生成 JAR 或 WAR 文件。
mvn install將項(xiàng)目安裝到本地倉庫,方便其他項(xiàng)目作為依賴使用。
mvn deploy將項(xiàng)目發(fā)布到遠(yuǎn)程倉庫,供其他開發(fā)者下載。

生命周期命令

Clean 生命周期

指令描述
mvn pre-clean執(zhí)行在 clean 之前的任何工作。
mvn clean清除以前的構(gòu)建結(jié)果。
mvn post-clean執(zhí)行在 clean 之后的工作。

Default 生命周期

指令描述
mvn process-resources復(fù)制并處理資源文件,使其為編譯做好準(zhǔn)備。
mvn compile編譯主源碼。
mvn process-classes在編譯之后處理類文件。
mvn generate-sources生成額外的源碼,并將其添加到生成的源碼目錄中。
mvn process-test-resources復(fù)制并處理測(cè)試資源。
mvn test-compile編譯測(cè)試源碼。
mvn process-test-classes在測(cè)試編譯之后處理類文件。
mvn test運(yùn)行測(cè)試。這些不會(huì)被打包或部署。
mvn prepare-package在測(cè)試之后執(zhí)行打包前的操作。
mvn package包裝所有編譯好的代碼,使其適合分發(fā)。
mvn pre-integration-test在集成測(cè)試前執(zhí)行操作。
mvn integration-test處理與集成測(cè)試相關(guān)的任務(wù)。
mvn verify運(yùn)行任何檢查以驗(yàn)證包是否可用于部署。
mvn install將包安裝到本地存儲(chǔ)庫,以供其他項(xiàng)目作為依賴使用。
mvn deploy將最終的包復(fù)制到遠(yuǎn)程存儲(chǔ)庫,以便與其他開發(fā)人員共享。

Site 生命周期

指令描述
mvn site生成項(xiàng)目站點(diǎn)文檔。
mvn pre-site在生成站點(diǎn)文檔之前執(zhí)行任何任務(wù)。
mvn post-site在生成站點(diǎn)文檔之后執(zhí)行任何任務(wù)。
mvn site-deploy將生成的站點(diǎn)文檔部署到特定位置。

依賴命令

指令描述
mvn dependency:tree顯示項(xiàng)目的依賴樹。

插件命令

指令描述
mvn plugin:goal通常用于執(zhí)行特定插件的目標(biāo)。

其他命令

指令描述
mvn help:effective-pom顯示當(dāng)前項(xiàng)目實(shí)際使用的 POM。
mvn versions:display-dependency-updates顯示可以更新的依賴版本。
mvn versions:display-plugin-updates顯示可以更新的插件版本。
mvn versions:update-properties更新版本屬性。
mvn dependency:sources獲取依賴的源代碼。
mvn dependency:analyze分析項(xiàng)目的依賴,確定哪些依賴未被使用。

設(shè)置utf8編碼格式方法

全局配置

添加系統(tǒng)環(huán)境變量:

  • 變量名 MAVEN_OPTS
  • 變量值 -Xms256m -Xmx512m -Dfile.encoding=UTF-8

在項(xiàng)目pom.xml中配置

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

在項(xiàng)目的 pom.xml中 build 配置

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <!-- 項(xiàng)目編碼-->
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring AOP之@Around,@AfterReturning使用、切不進(jìn)去的解決方案

    Spring AOP之@Around,@AfterReturning使用、切不進(jìn)去的解決方案

    這篇文章主要介紹了Spring AOP之@Around,@AfterReturning使用、切不進(jìn)去的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • tio-boot整合hotswap-classloader實(shí)現(xiàn)熱加載方法實(shí)例

    tio-boot整合hotswap-classloader實(shí)現(xiàn)熱加載方法實(shí)例

    這篇文章主要為大家介紹了tio-boot整合hotswap-classloader實(shí)現(xiàn)熱加載方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • spring啟動(dòng)錯(cuò)誤Singleton bean creation not allowed while the singletons of this factory are indestruction

    spring啟動(dòng)錯(cuò)誤Singleton bean creation not al

    本文主要介紹了spring啟動(dòng)錯(cuò)誤Singleton bean creation not allowed while the singletons of this factory are indestruction,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • SpringBoot加載配置文件的實(shí)現(xiàn)方式總結(jié)

    SpringBoot加載配置文件的實(shí)現(xiàn)方式總結(jié)

    在實(shí)際的項(xiàng)目開發(fā)過程中,我們經(jīng)常需要將某些變量從代碼里面抽離出來,放在配置文件里面,以便更加統(tǒng)一、靈活的管理服務(wù)配置信息。所以本文將為大家總結(jié)一下SpringBoot加載配置文件的常用方式,需要的可以參考一下
    2022-03-03
  • springboot?security使用jwt認(rèn)證方式

    springboot?security使用jwt認(rèn)證方式

    這篇文章主要介紹了springboot?security使用jwt認(rèn)證方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • mybatis教程之resultmap_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    mybatis教程之resultmap_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了mybatis教程之resultmap,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java獲取視頻時(shí)長和封面截圖

    Java獲取視頻時(shí)長和封面截圖

    這篇文章主要為大家詳細(xì)介紹了如何使用Java獲取視頻時(shí)長和封面截圖功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Java集合類中文介紹

    Java集合類中文介紹

    本文首先對(duì)Java集合類框架做了簡(jiǎn)單說明,之后對(duì)主要類和為API做了介紹:Collection、List、Set、AbstractCollection、AbstractList、AbstractSet、Iterator、ListIterator。
    2013-11-11
  • 快速解決?IDEA?報(bào)錯(cuò):?“java?找不到符號(hào)“(“cannot?find?symbol“)

    快速解決?IDEA?報(bào)錯(cuò):?“java?找不到符號(hào)“(“cannot?find?symbol“)

    文章詳細(xì)講解了在IntelliJIDEA中解決“找不到符號(hào)”錯(cuò)誤的方法,包括檢查導(dǎo)入語句、拼寫錯(cuò)誤、類路徑設(shè)置、文件編譯狀態(tài)、JDK配置以及IDE配置問題,通過具體示例代碼,展示了如何從錯(cuò)誤代碼到解決步驟,感興趣的朋友一起看看吧
    2025-03-03
  • 我們來說說Java LockSupport 的 park 和 unpark

    我們來說說Java LockSupport 的 park 和 unpa

    LockSupport是JDK底層線程阻塞工具,通過park/unpark實(shí)現(xiàn)線程阻塞與喚醒,避免死鎖,與Object的wait/notify相比,無需監(jiān)視器,支持先unpark后park,且更精確控制線程狀態(tài),是AQS等同步器的核心基礎(chǔ),本文介紹Java LockSupport 的 park 和 unpark,感興趣的朋友一起看看吧
    2025-07-07

最新評(píng)論

柘城县| 正镶白旗| 东至县| 乌什县| 武川县| 馆陶县| 延津县| 嫩江县| 昌图县| 天全县| 吉木萨尔县| 孟连| 肃南| 任丘市| 定安县| 巍山| 大同县| 新巴尔虎左旗| 乌审旗| 肃南| 屏东市| 沙雅县| 万山特区| 岳普湖县| 本溪市| 镇宁| 察隅县| 汉源县| 湖南省| 德阳市| 延寿县| 彝良县| 通州市| 白朗县| 新民市| 惠东县| 红桥区| 福清市| 清镇市| 行唐县| 余姚市|