国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會]

這篇具有很好參考價值的文章主要介紹了Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會]。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Maven詳解

1.1 目標(biāo)

  • maven是什么?
  • maven能干什么?
  • maven是如何工作的?
  • maven中你遇到過什么問題,是通過什么方法,手段定位的問題,然后如何解決的?

1.2 Maven概括

  • maven簡介

  • Maven 是一個項目管理和綜合工具。Maven 提供了開發(fā)人員構(gòu)建一個完整的生命周期框架。開發(fā)團(tuán)隊可以自動完成項目的基礎(chǔ)工具建設(shè),Maven 使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu)和默認(rèn)構(gòu)建生命周期。

  • 在多個開發(fā)團(tuán)隊環(huán)境時,Maven 可以設(shè)置按標(biāo)準(zhǔn)在非常短的時間里完成配置工作。由于大部分項目的設(shè)置都很簡單,并且可重復(fù)使用,Maven 讓開發(fā)人員的工作更輕松,同時創(chuàng)建報表,檢查,構(gòu)建和測試自動化設(shè)置。

  • 概括地說,Maven 簡化和標(biāo)準(zhǔn)化項目建設(shè)過程。處理編譯,分配,文檔,團(tuán)隊協(xié)作和其他任務(wù)的無縫連接。 Maven 增加可重用性并負(fù)責(zé)建立相關(guān)的任務(wù)。有了maven你的工作就簡單了.

  • 下載安裝(略)

      idea自帶一套maven的環(huán)境.使用idea開發(fā),無需安裝windows的maven.
    
      但是有的開發(fā)者,喜歡單獨(dú)使用maven,windows單獨(dú)安裝了一套.
    

1.3 多模塊開發(fā)

1.3.1 pom.xml

  • 每一個maven項目都有一個pom文件.Project Object Model 項目對象模型,maven作為一個項目開發(fā)管理工具,將每一個項目看成是一個對象.pom文件是描述這個對象的數(shù)據(jù)文件**(元數(shù)據(jù))**.通過pom文件的內(nèi)容,maven軟件就可以管理控制項目.

1.3.2 生命周期

maven管理項目時,總是先加載pom然后執(zhí)行聲明周期的命令邏輯,maven項目從創(chuàng)建開始,要經(jīng)歷如下幾個生命周期環(huán)節(jié).

概念: 生命周期,對象目標(biāo)經(jīng)歷的環(huán)節(jié),經(jīng)歷的步驟.
Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide

  • validate:
    底層執(zhí)行的maven命令 實際上 .校驗一下 當(dāng)前沒問結(jié)構(gòu),環(huán)境是否符合maven項目開發(fā)要求.
    idea中幾乎不會用到.
    mvn validate

  • compile:
    maven項目的編譯,只負(fù)責(zé)main中相關(guān)內(nèi)容的編譯輸出,默認(rèn)輸出到 target/classes
    mvn compile

  • test
    執(zhí)行項目的單元測試. 會生成單元測試報告,包含前一步的compile,并且將測試代碼編譯輸出
    mvn test

  • package
    將項目打包
    注意: 根據(jù)packaging類型不一樣,打包的輸出結(jié)果就不同.類型有三種常用的
    jar/war/pom.第三種類型沒有代碼,只能作為父工程或者聚合工程使用
    mvn package

  • install
    將項目打包,安裝存放到本地庫(遠(yuǎn)程庫,本地庫.目前的遠(yuǎn)程庫 central中央庫)
    mvn install

  • site
    根據(jù)Maven配置生成一個html頁面集.針對這個項目做的可觀測頁面.
    mvn sit

  • deploy
    和私服有關(guān).公司開發(fā),傳遞jar包的方式
    mvn deploy
    Idea自定義運(yùn)行命令
    Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide
    執(zhí)行自定義maven命令,添加一個選項-X可以在控制臺打印maven執(zhí)行命令的詳細(xì)日志.
    目的是在出錯的時候,幫助我們提供更準(zhǔn)確的定位信息.
    提問: 所有maven項目的生命周期經(jīng)歷的環(huán)節(jié)都完全一樣么?
    例如:
    項目運(yùn)行的web應(yīng)用: compile test package install deploy(不需要)
    項目是提供給同事復(fù)用的代碼: compile test pakcage install deploy

1.3.3 依賴特性(多模塊1)

Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide
Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide
依賴

  • 作用是什么: 代碼項目的復(fù)用
  • 如何使用: dependency標(biāo)簽
  • 特性是什么: 依賴有傳遞性
  • idea中想要觀察依賴的傳遞性: 傳遞性是強(qiáng)制傳遞,maven允許提出不需要的傳遞
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.22.RELEASE</version>
        <!--去除當(dāng)前依賴,默認(rèn)傳遞過來的其他依賴資源-->
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide
Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide

1.3.4 繼承特性(多模塊2)

  • 在同一個項目中不同模塊的開發(fā)者中,各自維護(hù)自己的項目依賴關(guān)系,有可能出現(xiàn)圖中的情況,相互關(guān)聯(lián)的兩個模塊同時依賴A.jar,但是版本不同,會導(dǎo)致嚴(yán)重的結(jié)果,相互之間的關(guān)系存在兼容問題. 為了保證沒有兼容問題.
  • 繼承意義
    為了統(tǒng)一多模塊協(xié)作多人開發(fā)版本資源,maven提供了一個多模塊特性–繼承
    繼承的實現(xiàn)
  • 確定父子關(guān)系**(文件夾結(jié)構(gòu)就是父子關(guān)系)**
  • 父工程packaging標(biāo)簽值必須是pom,子工程使用parent標(biāo)簽指向父工程(idea自動幫你實現(xiàn)了)
    區(qū)分開類的繼承,和maven的繼承細(xì)節(jié).區(qū)分開依賴和繼承的區(qū)別
    細(xì)節(jié): parent標(biāo)簽詳解
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.13</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

relativePath: 子工程尋找父工程pom文件的相對路徑地址.如果子工程無法找到父工程的pom,無法實現(xiàn)繼承.這個值有三種配置方式

  1. 默認(rèn)值(不給標(biāo)簽) …/pom.xml
  2. 自定義值,根據(jù)你的pom位置,合理的編寫路徑信息(夸文件夾級別繼承)
  3. 空值 只在本地庫找父工程的pom文件,如果本地庫沒有,從遠(yuǎn)程庫下載
  • 本地庫資源路徑(必須掌握通過maven標(biāo)簽找到庫資源)

    • 找本地庫在哪c:/{User}/.m2/repository/org/springframework/boot/spring-boot-starter-parent/2.7.13
  • 繼承的本質(zhì)
    子工程繼承父工程, pom文件的繼承,繼承之后,獲取的內(nèi)容就是pom文件中的標(biāo)簽.
    pom文件中標(biāo)簽的復(fù)用 依賴才是代碼的復(fù)用

  • 常見的繼承標(biāo)簽

    • groupId
    • version
    • properties
    • dependencies
    • dependencyManagement

1.3.5 dependencyManagement標(biāo)簽

依賴管理,在依賴管理標(biāo)簽定義的是依賴版本,dependencyManagement包含了一套完整的dependencies.
一旦在項目中定義了依賴管理,再使用依賴的時候,就可以省略版本號了.所以我們在父工程統(tǒng)一規(guī)劃好所有的依賴資源版本,dependencyManagement被子工程繼承之后,擁有了相同的特性,相當(dāng)于做到了資源版本的統(tǒng)一定義,子工程盡可能不重寫版本.

  • 補(bǔ)充
  1. 父工程定義一堆dependencies 能否實現(xiàn)統(tǒng)一管理資源版本? 能.
  2. 為什么不用? 因為這種統(tǒng)一管理版本 是一種強(qiáng)制的繼承,讓子工程承擔(dān)了非常多不需要用到的依賴資源
    結(jié)合 properties和dependencyManagement的繼承特性和標(biāo)簽的功能.父子繼承的時候最終父工程樣子Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide按照上圖,修改maven parent demo案例
    觀察一些父工程的pom文件,能夠閱讀其中的pom標(biāo)簽.
    spring-boot-starter-parentMaven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide

1.3.6 Maven-聚合(多模塊3)

聚合 1.3.6.1

有依賴,有繼承關(guān)系,已經(jīng)看到maven多模塊了.
一個團(tuán)隊開發(fā)項目時候,一定多模塊管理的.多人協(xié)作開發(fā),使用maven管理項目關(guān)系的.
假如項目結(jié)構(gòu):
Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,idea1,a2,b1,b2是項目中4個人共同并行開發(fā)的.每個項目都是一個應(yīng)用的web程序,所以目的都是打成jar包,運(yùn)行java啟動命令

java -jar a1.jar
java -jar a2.jar
java -jar b1.jar
java -jar b2.jar

每個項目都要執(zhí)行maven聲明周期中以下幾個命令

  • mvn clean compile 編譯
  • mvn clean test 測試
  • mvn clean package 打包
    發(fā)現(xiàn)2個問題需要解決:
  1. 打包命令重復(fù)執(zhí)行很多遍.
  2. 執(zhí)行相同命令時,還需要額外關(guān)心項目依賴關(guān)系.
  • 聚合的目的,就是為了統(tǒng)一執(zhí)行mvn相關(guān)命令的.而不需要關(guān)心,依賴關(guān)系,繼承關(guān)系,聚合本身就保管了所有的多模塊關(guān)系.

如何實現(xiàn)聚合:文章來源地址http://www.zghlxwxcb.cn/news/detail-558981.html

  1. 挑選一個聚合工程,聚合工程packaging類型是pom(和父工程要求是一致的)
  2. 聚合工程來實現(xiàn)modules配置.指向被聚合的工程(idea在創(chuàng)建工程時,自動實現(xiàn)的)
    maven-parent-demo 頂級父工程
<modules>
    <module>a1</module>
    <module>a2</module>
</modules>
  • 如果idea版本不同,在創(chuàng)建項目時,聚合的配置有所區(qū)別,有可能在頂級父工程中,聚合了所有人
  • 配置完上述兩部操作,只需要對聚合工程執(zhí)行mvn命令,統(tǒng)一對被聚合工程執(zhí)行相同的命令,而且滿足依賴關(guān)系
    Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會],Maven相關(guān),maven,intellij-idea,java,ide
聚合總結(jié)
  • 意義: 統(tǒng)一多模塊mvn命令和順序的執(zhí)行
  • 實現(xiàn): 聚合工程packaging類型pom ,指向module被聚合工程
  • 本質(zhì): pom文件加載的順序,通過modules關(guān)聯(lián)起來了.

到了這里,關(guān)于Maven詳見及在Idea中的使用方法[保姆級包學(xué)包會]的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • maven的安裝及在eclipse中的配置,及如何導(dǎo)入maven項目。

    maven的安裝及在eclipse中的配置,及如何導(dǎo)入maven項目。

    一:Maven是什么 Maven是一個跨平臺的項目管理工具,主要服務(wù)于基于Java平臺的項目構(gòu)建,依賴管理,和項目信息管理,跨平臺使用相同命令。(linux,windows,mac) 二:Maven的作用 構(gòu)建項目 依賴工具,第三方開源庫jar增多,版本沖突,依賴臃腫等問題增多,maven可以很好的解決。 如何

    2024年02月06日
    瀏覽(27)
  • maven:Maven Helper插件使用方法

    maven:Maven Helper插件使用方法

    ?maven Helper是排查jar包沖突的一大利器,jar包沖突大部分是由于引用了同一個jar的不同版本而導(dǎo)致的。 ?maven Helper就是一個將pom.xml圖形化界面的一個插件(總比看xml好理解),并且增加了查詢依賴沖突,搜索等功能。所以它的入口就是在pom文件中 下面用 分析Jar包沖突 和 查

    2024年02月12日
    瀏覽(18)
  • 5分鐘學(xué)會GitHub基本使用方法,保姆級教程

    5分鐘學(xué)會GitHub基本使用方法,保姆級教程

    導(dǎo)讀:我們先來了解一下 Git 和 Github 是什么,有什么功能 先說結(jié)論,Git 和 GitHub 是兩個東西,Git 是一個軟件/工具/系統(tǒng),GitHub 是一個網(wǎng)站/平臺,GitHub 這個網(wǎng)站使用了 Git 這個工具。 1.1 Git Git是一個分布式 版本控制系統(tǒng) 。 版本控制系統(tǒng)(version control system)像個數(shù)據(jù)庫,它

    2024年02月20日
    瀏覽(25)
  • 阿里云maven倉庫的使用詳解以及報錯解決方法

    阿里云maven倉庫的使用詳解以及報錯解決方法

    阿里云Maven中央倉庫為 阿里云云效 提供的公共代理倉庫,幫助研發(fā)人員提高研發(fā)生產(chǎn)效率,使用阿里云Maven中央倉庫作為下載源,速度更快更穩(wěn)定。阿里云云效是企業(yè)級一站式 DevOps 平臺,覆蓋產(chǎn)品從需求到運(yùn)營的研發(fā)全生命周期,其中云效也提供了免費(fèi)、可靠的Maven私有倉庫

    2023年04月08日
    瀏覽(14)
  • IDEA Eval Reset 使用方法

    IDEA Eval Reset 使用方法

    IDEA Eval Reset 使用方法 idea eval reset 使用方法安裝插件 離線安裝方式 ? ? 使用插件 成功安裝插件后,在 幫助 下會多一個 Eval Reset 按鈕,如下圖所示: jetbrains 試用 一般來說,在 IDE 窗口切出去或切回來時(窗口失去/得到焦點)會觸發(fā)事件,檢測是否長時間(25 天)沒有重置

    2024年02月06日
    瀏覽(16)
  • 使用Gitee或GitHub托管Maven倉庫JAR包的便捷方法

    使用Gitee或GitHub托管Maven倉庫JAR包的便捷方法

    原文地址:https://ntopic.cn/p/2023062201/ 我開源的JAR包的Gitee和GitHub托管的Maven倉庫: Gitee托管倉庫:https://gitee.com/obullxl/maven-repository GitHub托管倉庫:https://github.com/obullxl/maven-repository 在上一篇博客中,我們介紹了 開源通用高性能分布式id序列組件 (https://ntopic.cn/p/2023062101/)的設(shè)

    2024年02月11日
    瀏覽(23)
  • 在較新版pycharm中使用conda虛擬環(huán)境的兩種方法-保姆級教程

    在較新版pycharm中使用conda虛擬環(huán)境的兩種方法-保姆級教程

    首先創(chuàng)建new-project 之后等待配置索引等文件即可。 在終端terminal中直接使用conda activate xxx,但是失效。 解決方法: file-settings-Tools-Terminal 之后一定要記得 重啟! 然后就好了: 之后conda activate xxx(你的虛擬環(huán)境),在里面運(yùn)行你的python文件即可(python xxx.py --xxx) 如果是這樣創(chuàng)建的

    2024年02月09日
    瀏覽(35)
  • idea配置本地maven保姆級教程

    idea配置本地maven保姆級教程

    idea默認(rèn)會帶有maven插件,原則上是可以不需要配置的。但有個缺點,他是把本地倉庫直接安裝在了系統(tǒng)盤里面,隨著時間的推移,倉庫越來越大,筆記本的壓力會比較大。 本文是下載自己的maven包,集成idea ,并 配置指定的 maven本地倉庫(可以把倉庫配置在其他盤里面) 1、

    2024年02月13日
    瀏覽(17)
  • 使用IntelliJ IDEA查看接口的全部實現(xiàn)方法

    使用IntelliJ IDEA查看接口的全部實現(xiàn)方法

    在大型Java項目中,經(jīng)常會使用接口和抽象類進(jìn)行代碼設(shè)計。為了更好地了解代碼結(jié)構(gòu)和功能,我們需要快速查看一個接口的所有實現(xiàn)類。IntelliJ IDEA提供了一些方便的方法來實現(xiàn)這一目標(biāo)。 在IDEA中,你可以輕松地查看接口的所有實現(xiàn)類。以下是步驟: 使用快捷鍵 Ctrl + Alt +

    2024年02月21日
    瀏覽(19)
  • idea導(dǎo)入javaweb項目非maven(保姆級)

    idea導(dǎo)入javaweb項目非maven(保姆級)

    前言:網(wǎng)上下載的代碼不會運(yùn)行???總是報錯不知道如何解決???那么你可能需要看看我這篇文章可能會解決你的疑惑 一、java環(huán)境jdk和jre,盡量是1.8,目前1.8最通用 二、idae開發(fā)工具需要支持web開發(fā)的版本哦 三、tomcat盡量保持版本在7.0~9.0太高或者太老都會出現(xiàn)問題 四、mysql版本盡量

    2024年02月04日
    瀏覽(87)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包