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

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階

這篇具有很好參考價(jià)值的文章主要介紹了高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階


一、Maven簡(jiǎn)介和快速入門

1.1 Maven介紹

https://maven.apache.org/what-is-maven.html

Maven 是一款為 Java 項(xiàng)目構(gòu)建管理、依賴管理的工具(軟件),使用 Maven 可以自動(dòng)化構(gòu)建、測(cè)試、打包和發(fā)布項(xiàng)目,大大提高了開(kāi)發(fā)效率和質(zhì)量。

總結(jié):Maven就是一個(gè)軟件,掌握軟件安裝、配置、以及基本功能**(項(xiàng)目構(gòu)建、依賴管理)**使用就是本課程的主要目標(biāo)!

1.2 Maven主要作用理解

  1. 場(chǎng)景概念

    **場(chǎng)景1:**例如我們項(xiàng)目需要第三方庫(kù)(依賴),如Druid連接池、MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)和Jackson等。那么我們可以將需要的依賴項(xiàng)的信息編寫到Maven工程的配置文件,Maven軟件就會(huì)自動(dòng)下載并復(fù)制這些依賴項(xiàng)到項(xiàng)目中,也會(huì)自動(dòng)下載依賴需要的依賴!確保依賴版本正確無(wú)沖突和依賴完整!

    **場(chǎng)景2:**項(xiàng)目開(kāi)發(fā)完成后,想要將項(xiàng)目打成.war文件,并部署到服務(wù)器中運(yùn)行,使用Maven軟件,我們可以通過(guò)一行構(gòu)建命令(mvn package)快速項(xiàng)目構(gòu)建和打包!節(jié)省大量時(shí)間!

  2. 依賴管理:

    Maven 可以管理項(xiàng)目的依賴,包括自動(dòng)下載所需依賴庫(kù)、自動(dòng)下載依賴需要的依賴并且保證版本沒(méi)有沖突、依賴版本管理等。通過(guò) Maven,我們可以方便地維護(hù)項(xiàng)目所依賴的外部庫(kù),而我們僅僅需要編寫配置即可。

  3. 構(gòu)建管理:

    項(xiàng)目構(gòu)建是指將源代碼、配置文件、資源文件等轉(zhuǎn)化為能夠運(yùn)行或部署的應(yīng)用程序或庫(kù)的過(guò)程!

    Maven 可以管理項(xiàng)目的編譯、測(cè)試、打包、部署等構(gòu)建過(guò)程。通過(guò)實(shí)現(xiàn)標(biāo)準(zhǔn)的構(gòu)建生命周期,Maven 可以確保每一個(gè)構(gòu)建過(guò)程都遵循同樣的規(guī)則和最佳實(shí)踐。同時(shí),Maven 的插件機(jī)制也使得開(kāi)發(fā)者可以對(duì)構(gòu)建過(guò)程進(jìn)行擴(kuò)展和定制。主動(dòng)觸發(fā)構(gòu)建,只需要簡(jiǎn)單的命令操作即可。

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

1.3 Maven安裝和配置

https://maven.apache.org/docs/history.html

選用版本:

發(fā)布時(shí)間 maven版本 jdk最低版本
**2019 - 11 - **25 **3.6.**3 Java 7
  1. 安裝

    **安裝條件:**maven需要本機(jī)安裝java環(huán)境、必需包含java_home環(huán)境變量!

    **軟件安裝:**右鍵解壓即可(綠色免安裝)

    軟件結(jié)構(gòu):

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 環(huán)境變量

    **環(huán)境變量:**配置maven_home 和 path

    高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

    高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  2. 命令測(cè)試

mvn -v 
# 輸出版本信息即可,如果錯(cuò)誤,請(qǐng)仔細(xì)檢查環(huán)境變量即可!
# 友好提示,如果此處錯(cuò)誤,絕大部分原因都是java_home變量的事,請(qǐng)仔細(xì)檢查!!
  1. 配置文件

    我們需要需改maven/conf/settings.xml配置文件,來(lái)修改maven的一些默認(rèn)配置。我們主要休要修改的有三個(gè)配置:1.依賴本地緩存位置(本地倉(cāng)庫(kù)位置)2.maven下載鏡像3.maven選用編譯項(xiàng)目的jdk版本!

    1. 配置本地倉(cāng)庫(kù)地址
<!-- localRepository
 | The path to the local repository maven will use to store artifacts.
 |
 | Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!-- conf/settings.xml 55行 -->
<localRepository>D:\repository</localRepository>

? 2. 配置國(guó)內(nèi)阿里鏡像

<!--在mirrors節(jié)點(diǎn)(標(biāo)簽)下添加中央倉(cāng)庫(kù)鏡像 160行附近-->
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

? 3. 配置jdk17版本項(xiàng)目構(gòu)建

<!--在profiles節(jié)點(diǎn)(標(biāo)簽)下添加jdk編譯版本 268行附近-->
<profile>
    <id>jdk-17</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>17</jdk>
    </activation>
    <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
      <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
    </properties>
</profile>
  1. idea配置本地maven

    我們需要將配置好的maven軟件,配置到idea開(kāi)發(fā)工具中即可! 注意:idea工具默認(rèn)自帶maven配置軟件,但是因?yàn)闆](méi)有修改配置,建議替換成本地配置好的maven!

    1. 打開(kāi)idea配置文件,構(gòu)建工具配置

      依次點(diǎn)擊

      file / settings / build / build tool / maven

  2. 選中本地maven軟件

    高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  3. 測(cè)試是否配置成功

    注意:如果本地倉(cāng)庫(kù)地址不變化,只有一個(gè)原因,就是maven/conf/settings.xml配置文件編寫錯(cuò)誤!仔細(xì)檢查即可!

    高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

二、基于IDEA的Maven工程創(chuàng)建

2.1梳理Maven工程GAVP屬性

Maven工程相對(duì)之前的工程,多出一組gavp屬性,gav需要我們?cè)趧?chuàng)建項(xiàng)目的時(shí)指定,p有默認(rèn)值,后期通過(guò)配置文件修改。既然要填寫的屬性,我們先行了解下這組屬性的含義!

Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四個(gè)屬性的縮寫,其中前三個(gè)是必要的,而 Packaging 屬性為可選項(xiàng)。這四個(gè)屬性主要為每個(gè)項(xiàng)目在maven倉(cāng)庫(kù)總做一個(gè)標(biāo)識(shí),類似人的《姓-名》。有了具體標(biāo)識(shí),方便maven軟件對(duì)項(xiàng)目進(jìn)行管理和互相引用!

GAV遵循一下規(guī)則:

1) GroupID 格式:com.{公司/BU }.業(yè)務(wù)線.[子業(yè)務(wù)線],最多 4 級(jí)。

說(shuō)明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一級(jí);子業(yè)務(wù)線可選。

正例:com.taobao.tddl 或 com.alibaba.sourcing.multilang  

2) ArtifactID 格式:產(chǎn)品線名-模塊名。語(yǔ)義不重復(fù)不遺漏,先到倉(cāng)庫(kù)中心去查證一下。

正例:tc-client / uic-api / tair-tool / bookstore

3) Version版本號(hào)格式推薦:主版本號(hào).次版本號(hào).修訂號(hào) 1.0.0

1) 主版本號(hào):當(dāng)做了不兼容的 API 修改,或者增加了能改變產(chǎn)品方向的新功能。

2) 次版本號(hào):當(dāng)做了向下兼容的功能性新增(新增類、接口等)。

3) 修訂號(hào):修復(fù) bug,沒(méi)有修改方法簽名的功能加強(qiáng),保持 API 兼容性。

例如: 初始→1.0.0  修改bug → 1.0.1  功能調(diào)整 → 1.1.1等

Packaging定義規(guī)則:

指示將項(xiàng)目打包為什么類型的文件,idea根據(jù)packaging值,識(shí)別maven項(xiàng)目類型!

packaging 屬性為 jar(默認(rèn)值),代表普通的Java工程,打包以后是.jar結(jié)尾的文件。

packaging 屬性為 war,代表Java的web工程,打包以后.war結(jié)尾的文件。

packaging 屬性為 pom,代表不會(huì)打包,用來(lái)做繼承的父工程。

2.2 Idea構(gòu)建Maven JavaSE工程

注意:此處省略了version,直接給了一個(gè)默認(rèn)值1.0-SNAPSHOT

自己后期可以在項(xiàng)目中隨意修改!

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

2.3 Idea構(gòu)建Maven JavaEE工程

  1. 手動(dòng)創(chuàng)建

    1. 創(chuàng)建一個(gè)javasemaven工程

    2. 手動(dòng)添加web項(xiàng)目結(jié)構(gòu)文件

      注意:結(jié)構(gòu)和命名固定

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 修改pom.xml文件打包方式

    修改位置:項(xiàng)目下/pom.xml

<groupId>com.xxxx</groupId>
<artifactId>maven_parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 新增一列打包方式packaging -->
<packaging>war</packaging>
  1. 刷新和校驗(yàn)
    高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

項(xiàng)目的webapp文件夾出現(xiàn)小藍(lán)點(diǎn),代表成功!!
高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 插件方式創(chuàng)建

    1. 安裝插件JBLJavaToWeb

      file / settings / plugins / marketplace

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github
2. 創(chuàng)建一個(gè)javasemaven工程

  1. 右鍵、使用插件快速補(bǔ)全web項(xiàng)目

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

2.4 Maven工程項(xiàng)目結(jié)構(gòu)說(shuō)明

Maven 是一個(gè)強(qiáng)大的構(gòu)建工具,它提供一種標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu),可以幫助開(kāi)發(fā)者更容易地管理項(xiàng)目的依賴、構(gòu)建、測(cè)試和發(fā)布等任務(wù)。以下是 Maven Web 程序的文件結(jié)構(gòu)及每個(gè)文件的作用:

|-- pom.xml                               # Maven 項(xiàng)目管理文件 
|-- src
    |-- main                              # 項(xiàng)目主要代碼
    |   |-- java                          # Java 源代碼目錄
    |   |   `-- com/example/myapp         # 開(kāi)發(fā)者代碼主目錄
    |   |       |-- controller            # 存放 Controller 層代碼的目錄
    |   |       |-- service               # 存放 Service 層代碼的目錄
    |   |       |-- dao                   # 存放 DAO 層代碼的目錄
    |   |       `-- model                 # 存放數(shù)據(jù)模型的目錄
    |   |-- resources                     # 資源目錄,存放配置文件、靜態(tài)資源等
    |   |   |-- log4j.properties          # 日志配置文件
    |   |   |-- spring-mybatis.xml        # Spring Mybatis 配置文件
    |   |   `-- static                    # 存放靜態(tài)資源的目錄
    |   |       |-- css                   # 存放 CSS 文件的目錄
    |   |       |-- js                    # 存放 JavaScript 文件的目錄
    |   |       `-- images                # 存放圖片資源的目錄
    |   `-- webapp                        # 存放 WEB 相關(guān)配置和資源
    |       |-- WEB-INF                   # 存放 WEB 應(yīng)用配置文件
    |       |   |-- web.xml               # Web 應(yīng)用的部署描述文件
    |       |   `-- classes               # 存放編譯后的 class 文件
    |       `-- index.html                # Web 應(yīng)用入口頁(yè)面
    `-- test                              # 項(xiàng)目測(cè)試代碼
        |-- java                          # 單元測(cè)試目錄
        `-- resources                     # 測(cè)試資源目錄
- pom.xml:Maven 項(xiàng)目管理文件,用于描述項(xiàng)目的依賴和構(gòu)建配置等信息。
- src/main/java:存放項(xiàng)目的 Java 源代碼。
- src/main/resources:存放項(xiàng)目的資源文件,如配置文件、靜態(tài)資源等。
- src/main/webapp/WEB-INF:存放 Web 應(yīng)用的配置文件。
- src/main/webapp/index.html:Web 應(yīng)用的入口頁(yè)面。
- src/test/java:存放項(xiàng)目的測(cè)試代碼。
- src/test/resources:存放測(cè)試相關(guān)的資源文件,如測(cè)試配置文件等。

三、Maven核心功能依賴和構(gòu)建管理

3.1 依賴管理和配置

Maven 依賴管理是 Maven 軟件中最重要的功能之一。Maven 的依賴管理能夠幫助開(kāi)發(fā)人員自動(dòng)解決軟件包依賴問(wèn)題,使得開(kāi)發(fā)人員能夠輕松地將其他開(kāi)發(fā)人員開(kāi)發(fā)的模塊或第三方框架集成到自己的應(yīng)用程序或模塊中,避免出現(xiàn)版本沖突和依賴缺失等問(wèn)題。

我們通過(guò)定義 POM 文件,Maven 能夠自動(dòng)解析項(xiàng)目的依賴關(guān)系,并通過(guò) Maven 倉(cāng)庫(kù)自動(dòng)下載和管理依賴,從而避免了手動(dòng)下載和管理依賴的繁瑣工作和可能引發(fā)的版本沖突問(wèn)題。

重點(diǎn): 編寫pom.xml文件!

maven項(xiàng)目信息屬性配置和讀?。?/p>

<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者組織的唯一標(biāo)志,并且配置時(shí)生成的路徑也是由此生成, 如com.companyname.project-group,maven會(huì)將該項(xiàng)目打成的jar包放本地路徑:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 項(xiàng)目的唯一ID,一個(gè)groupId下面可能多個(gè)項(xiàng)目,就是靠artifactId來(lái)區(qū)分的 -->
<artifactId>project</artifactId>
<!-- 版本號(hào) -->
<version>1.0.0</version>

<!--打包方式
    默認(rèn):jar
    jar指的是普通的java項(xiàng)目打包方式! 項(xiàng)目打成jar包!
    war指的是web項(xiàng)目打包方式!項(xiàng)目打成war包!
    pom不會(huì)講項(xiàng)目打包!這個(gè)項(xiàng)目作為父工程,被其他工程聚合或者繼承!后面會(huì)講解兩個(gè)概念
-->
<packaging>jar/pom/war</packaging>

依賴管理和添加:

<!-- 
   通過(guò)編寫依賴jar包的gav必要屬性,引入第三方依賴!
   scope屬性是可選的,可以指定依賴生效范圍!
   依賴信息查詢方式:
      1. maven倉(cāng)庫(kù)信息官網(wǎng) https://mvnrepository.com/
      2. mavensearch插件搜索
 -->
<dependencies>
    <!-- 引入具體的依賴包 -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <!--
            生效范圍
            - compile :main目錄 test目錄  打包打包 [默認(rèn)]
            - provided:main目錄 test目錄  Servlet
            - runtime: 打包運(yùn)行           MySQL
            - test:    test目錄           junit
         -->
        <scope>runtime</scope>
    </dependency>

</dependencies>

依賴版本提取和維護(hù):

<!--聲明版本-->
<properties>
  <!--命名隨便,內(nèi)部制定版本號(hào)即可!-->
  <junit.version>4.11</junit.version>
  <!-- 也可以通過(guò) maven規(guī)定的固定的key,配置maven的參數(shù)!如下配置編碼格式!-->
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <!--引用properties聲明版本 -->
    <version>${junit.version}</version>
  </dependency>
</dependencies>

3.2依賴傳遞和沖突

依賴傳遞指的是當(dāng)一個(gè)模塊或庫(kù) A 依賴于另一個(gè)模塊或庫(kù) B,而 B 又依賴于模塊或庫(kù) C,那么 A 會(huì)間接依賴于 C。這種依賴傳遞結(jié)構(gòu)可以形成一個(gè)依賴樹(shù)。當(dāng)我們引入一個(gè)庫(kù)或框架時(shí),構(gòu)建工具(如 Maven、Gradle)會(huì)自動(dòng)解析和加載其所有的直接和間接依賴,確保這些依賴都可用。

依賴傳遞的作用是:

  1. 減少重復(fù)依賴:當(dāng)多個(gè)項(xiàng)目依賴同一個(gè)庫(kù)時(shí),Maven 可以自動(dòng)下載并且只下載一次該庫(kù)。這樣可以減少項(xiàng)目的構(gòu)建時(shí)間和磁盤空間。
  2. 自動(dòng)管理依賴: Maven 可以自動(dòng)管理依賴項(xiàng),使用依賴傳遞,簡(jiǎn)化了依賴項(xiàng)的管理,使項(xiàng)目構(gòu)建更加可靠和一致。
  3. 確保依賴版本正確性:通過(guò)依賴傳遞的依賴,之間都不會(huì)存在版本兼容性問(wèn)題,確實(shí)依賴的版本正確性!

依賴傳遞演示:

項(xiàng)目中,需要導(dǎo)入jackson相關(guān)的依賴,通過(guò)之前導(dǎo)入經(jīng)驗(yàn),jackson需要導(dǎo)入三個(gè)依賴,分別為:

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

通過(guò)查看網(wǎng)站介紹的依賴傳遞特性:data-bind中,依賴其他兩個(gè)依賴

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github
最佳導(dǎo)入:直接可以導(dǎo)入data-bind,自動(dòng)依賴傳遞需要的依賴

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.15.0</version>
</dependency>

依賴沖突演示:

當(dāng)直接引用或者間接引用出現(xiàn)了相同的jar包! 這時(shí)呢,一個(gè)項(xiàng)目就會(huì)出現(xiàn)相同的重復(fù)jar包,這就算作沖突!依賴沖突避免出現(xiàn)重復(fù)依賴,并且終止依賴傳遞!

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

maven自動(dòng)解決依賴沖突問(wèn)題能力,會(huì)按照自己的原則,進(jìn)行重復(fù)依賴選擇。同時(shí)也提供了手動(dòng)解決的沖突的方式,不過(guò)不推薦!

解決依賴沖突(如何選擇重復(fù)依賴)方式:

  1. 自動(dòng)選擇原則

    • 短路優(yōu)先原則(第一原則)

      A—>B—>C—>D—>E—>X(version 0.0.1)

      A—>F—>X(version 0.0.2)

      則A依賴于X(version 0.0.2)。

    • 依賴路徑長(zhǎng)度相同情況下,則“先聲明優(yōu)先”(第二原則)

      A—>E—>X(version 0.0.1)

      A—>F—>X(version 0.0.2)

      在中,先聲明的,路徑相同,會(huì)優(yōu)先選擇!

小思考:

前提:
   A 1.1 -> B 1.1 -> C 1.1 
   F 2.2 -> B 2.2 
   
pom聲明:
   F 2.2
   A 1.1 
   
   B 2.2 

3.3 依賴導(dǎo)入失敗場(chǎng)景和解決方案

在使用 Maven 構(gòu)建項(xiàng)目時(shí),可能會(huì)發(fā)生依賴項(xiàng)下載錯(cuò)誤的情況,主要原因有以下幾種:

  1. 下載依賴時(shí)出現(xiàn)網(wǎng)絡(luò)故障或倉(cāng)庫(kù)服務(wù)器宕機(jī)等原因,導(dǎo)致無(wú)法連接至 Maven 倉(cāng)庫(kù),從而無(wú)法下載依賴。
  2. 依賴項(xiàng)的版本號(hào)或配置文件中的版本號(hào)錯(cuò)誤,或者依賴項(xiàng)沒(méi)有正確定義,導(dǎo)致 Maven 下載的依賴項(xiàng)與實(shí)際需要的不一致,從而引發(fā)錯(cuò)誤。
  3. 本地 Maven 倉(cāng)庫(kù)或緩存被污染或損壞,導(dǎo)致 Maven 無(wú)法正確地使用現(xiàn)有的依賴項(xiàng),并且也無(wú)法重新下載!

解決方案:

  1. 檢查網(wǎng)絡(luò)連接和 Maven 倉(cāng)庫(kù)服務(wù)器狀態(tài)。

  2. 確保依賴項(xiàng)的版本號(hào)與項(xiàng)目對(duì)應(yīng)的版本號(hào)匹配,并檢查 POM 文件中的依賴項(xiàng)是否正確。

  3. 清除本地 Maven 倉(cāng)庫(kù)緩存(lastUpdated 文件),因?yàn)橹灰嬖趌astupdated緩存文件,刷新也不會(huì)重新下載。本地倉(cāng)庫(kù)中,根據(jù)依賴的gav屬性依次向下查找文件夾,最終刪除內(nèi)部的文件,刷新重新下載即可!

    例如: pom.xml依賴

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.2.8</version>
</dependency>

? 文件:

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

腳本使用:

使用記事本打開(kāi)
set REPOSITORY_PATH=D:\repository 改成你本地倉(cāng)庫(kù)地址即可!
點(diǎn)擊運(yùn)行腳本,即可自動(dòng)清理本地錯(cuò)誤緩存文件??!

3.4 擴(kuò)展構(gòu)建管理和插件配置

構(gòu)建概念:

項(xiàng)目構(gòu)建是指將源代碼、依賴庫(kù)和資源文件等轉(zhuǎn)換成可執(zhí)行或可部署的應(yīng)用程序的過(guò)程,在這個(gè)過(guò)程中包括編譯源代碼、鏈接依賴庫(kù)、打包和部署等多個(gè)步驟。

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

主動(dòng)觸發(fā)場(chǎng)景:

  • 重新編譯 : 編譯不充分, 部分文件沒(méi)有被編譯!
  • 打包 : 獨(dú)立部署到外部服務(wù)器軟件,打包部署
  • 部署本地或者私服倉(cāng)庫(kù) : maven工程加入到本地或者私服倉(cāng)庫(kù),供其他工程使用

命令方式構(gòu)建:

語(yǔ)法: mvn 構(gòu)建命令 構(gòu)建命令…

命令 描述
mvn clean 清理編譯或打包后的項(xiàng)目結(jié)構(gòu),刪除target文件夾
mvn compile 編譯項(xiàng)目,生成target文件
mvn test 執(zhí)行測(cè)試源碼 (測(cè)試)
mvn site 生成一個(gè)項(xiàng)目依賴信息的展示頁(yè)面
mvn package 打包項(xiàng)目,生成war / jar 文件
mvn install 打包后上傳到maven本地倉(cāng)庫(kù)(本地部署)
mvn deploy 只打包,上傳到maven私服倉(cāng)庫(kù)(私服部署)

可視化方式構(gòu)建:

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

構(gòu)建命令周期:

構(gòu)建生命周期可以理解成是一組固定構(gòu)建命令的有序集合,觸發(fā)周期后的命令,會(huì)自動(dòng)觸發(fā)周期前的命令!也是一種簡(jiǎn)化構(gòu)建的思路!

  • 清理周期:主要是對(duì)項(xiàng)目編譯生成文件進(jìn)行清理

    包含命令:clean

  • 默認(rèn)周期:定義了真正構(gòu)件時(shí)所需要執(zhí)行的所有步驟,它是生命周期中最核心的部分

    包含命令:compile - test - package - install / deploy

  • 報(bào)告周期

    包含命令:site

    打包: mvn clean package 本地倉(cāng)庫(kù): mvn clean install

最佳使用方案:

打包: mvn clean package
重新編譯: mvn clean compile
本地部署: mvn clean install 

周期,命令和插件:

周期→包含若干命令→包含若干插件!

使用周期命令構(gòu)建,簡(jiǎn)化構(gòu)建過(guò)程!

最終進(jìn)行構(gòu)建的是插件!

插件配置:

<build>
   <!-- jdk17 和 war包版本插件不匹配 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
        </plugin>
    </plugins>
</build>

四、Maven繼承和聚合特性

4.1 Maven工程繼承關(guān)系

  1. 繼承概念

    Maven 繼承是指在 Maven 的項(xiàng)目中,讓一個(gè)項(xiàng)目從另一個(gè)項(xiàng)目中繼承配置信息的機(jī)制。繼承可以讓我們?cè)诙鄠€(gè)項(xiàng)目中共享同一配置信息,簡(jiǎn)化項(xiàng)目的管理和維護(hù)工作。

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 繼承作用

    作用:在父工程中統(tǒng)一管理項(xiàng)目中的依賴信息,進(jìn)行統(tǒng)一版本管理!

    它的背景是:

    • 對(duì)一個(gè)比較大型的項(xiàng)目進(jìn)行了模塊拆分。
    • 一個(gè) project 下面,創(chuàng)建了很多個(gè) module。
    • 每一個(gè) module 都需要配置自己的依賴信息。

    它背后的需求是:

    • 多個(gè)模塊要使用同一個(gè)框架,它們應(yīng)該是同一個(gè)版本,所以整個(gè)項(xiàng)目中使用的框架版本需要統(tǒng)一管理。
    • 使用框架時(shí)所需要的 jar 包組合(或者說(shuō)依賴信息組合)需要經(jīng)過(guò)長(zhǎng)期摸索和反復(fù)調(diào)試,最終確定一個(gè)可用組合。這個(gè)耗費(fèi)很大精力總結(jié)出來(lái)的方案不應(yīng)該在新的項(xiàng)目中重新摸索。

    通過(guò)在父工程中為整個(gè)項(xiàng)目維護(hù)依賴信息的組合既保證了整個(gè)項(xiàng)目使用規(guī)范、準(zhǔn)確的 jar 包;又能夠?qū)⒁酝慕?jīng)驗(yàn)沉淀下來(lái),節(jié)約時(shí)間和精力。

  2. 繼承語(yǔ)法

    • 父工程
<groupId>com.xxxx.maven</groupId>
<artifactId>pro03-maven-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 當(dāng)前工程作為父工程,它要去管理子工程,所以打包方式必須是 pom -->
<packaging>pom</packaging>

? - 子工程

<!-- 使用parent標(biāo)簽指定當(dāng)前工程的父工程 -->
<parent>
  <!-- 父工程的坐標(biāo) -->
  <groupId>com.xxxx.maven</groupId>
  <artifactId>pro03-maven-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
</parent>

<!-- 子工程的坐標(biāo) -->
<!-- 如果子工程坐標(biāo)中的groupId和version與父工程一致,那么可以省略 -->
<!-- <groupId>com.xxxx.maven</groupId> -->
<artifactId>pro04-maven-module</artifactId>
<!-- <version>1.0-SNAPSHOT</version> -->
  1. 父工程依賴統(tǒng)一管理
    • 父工程聲明版本
<!-- 使用dependencyManagement標(biāo)簽配置對(duì)依賴的管理 -->
<!-- 被管理的依賴并沒(méi)有真正被引入到工程 -->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>4.0.0.RELEASE</version>
    </dependency>
  </dependencies>
</dependencyManagement>

? - 子工程引用版本

<!-- 子工程引用父工程中的依賴信息時(shí),可以把版本號(hào)去掉。  -->
<!-- 把版本號(hào)去掉就表示子工程中這個(gè)依賴的版本由父工程決定。 -->
<!-- 具體來(lái)說(shuō)是由父工程的dependencyManagement來(lái)決定。 -->
<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
  </dependency>
</dependencies>

4.2 Maven工程聚合關(guān)系

  1. 聚合概念

    Maven 聚合是指將多個(gè)項(xiàng)目組織到一個(gè)父級(jí)項(xiàng)目中,通過(guò)觸發(fā)父工程的構(gòu)建,統(tǒng)一按順序觸發(fā)子工程構(gòu)建的過(guò)程!!

  2. 聚合作用

    1. 統(tǒng)一管理子項(xiàng)目構(gòu)建:通過(guò)聚合,可以將多個(gè)子項(xiàng)目組織在一起,方便管理和維護(hù)。
    2. 優(yōu)化構(gòu)建順序:通過(guò)聚合,可以對(duì)多個(gè)項(xiàng)目進(jìn)行順序控制,避免出現(xiàn)構(gòu)建依賴混亂導(dǎo)致構(gòu)建失敗的情況。
  3. 聚合語(yǔ)法

    父項(xiàng)目中包含的子項(xiàng)目列表。

<project>
  <groupId>com.example</groupId>
  <artifactId>parent-project</artifactId>
  <packaging>pom</packaging>
  <version>1.0.0</version>
  <modules>
    <module>child-project1</module>
    <module>child-project2</module>
  </modules>
</project>
  1. 聚合演示

    通過(guò)觸發(fā)父工程構(gòu)建命令、引發(fā)所有子模塊構(gòu)建!產(chǎn)生反應(yīng)堆!

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

五、Maven實(shí)戰(zhàn)案例:搭建微服務(wù)Maven工程架構(gòu)

5.1 項(xiàng)目需求和結(jié)構(gòu)分析

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

需求案例:搭建一個(gè)電商平臺(tái)項(xiàng)目,該平臺(tái)包括用戶服務(wù)、訂單服務(wù)、通用工具模塊等。

項(xiàng)目架構(gòu):

  1. 用戶服務(wù):負(fù)責(zé)處理用戶相關(guān)的邏輯,例如用戶信息的管理、用戶注冊(cè)、登錄等。
  2. 訂單服務(wù):負(fù)責(zé)處理訂單相關(guān)的邏輯,例如訂單的創(chuàng)建、訂單支付、退貨、訂單查看等。
  3. 通用模塊:負(fù)責(zé)存儲(chǔ)其他服務(wù)需要通用工具類,其他服務(wù)依賴此模塊。

服務(wù)依賴:

  1. 用戶服務(wù) (1.0.1)
    • spring-context 6.0.6
    • spring-core 6.0.6
    • spring-beans 6.0.6
    • jackson-databind / jackson-core / jackson-annotations 2.15.0
  2. 訂單服務(wù) (1.0.1)
    1. shiro-core 1.10.1
    2. spring-context 6.0.6
    3. spring-core 6.0.6
    4. spring-beans 6.0.6
  3. 通用模塊 (1.0.1)
    1. commons-io 2.11.0

5.2項(xiàng)目搭建和統(tǒng)一構(gòu)建

  1. 父模塊搭建 (micro-shop)
    1. 創(chuàng)建父工程

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 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>

    <groupId>com.xxxx</groupId>
    <artifactId>micro-shop</artifactId>
    <version>1.0.1</version>
    <!-- 父工程不打包,所以選擇pom值-->
    <packaging>pom</packaging>

    <properties>
        <spring.version>6.0.6</spring.version>
        <jackson.version>2.15.0</jackson.version>
        <shiro.version>1.10.1</shiro.version>
        <commons.version>2.11.0</commons.version>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!-- 依賴管理 -->
    <dependencyManagement>
        <dependencies>
            <!-- spring-context會(huì)依賴傳遞core/beans -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <!-- jackson-databind會(huì)依賴傳遞core/annotations -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <!-- shiro-core -->
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
                <version>${shiro.version}</version>
            </dependency>
            <!-- commons-io -->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons.version}</version>
            </dependency>

        </dependencies>

    </dependencyManagement>

    <dependencies>
        <!-- 父工程添加依賴,會(huì)自動(dòng)傳遞給所有子工程,不推薦! -->
    </dependencies>

    <!-- 統(tǒng)一更新子工程打包插件-->
    <build>
        <!-- jdk17 和 war包版本插件不匹配 -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
            </plugin>
        </plugins>
    </build>

</project>
  1. 通用模塊 (common-service)
    1. 創(chuàng)建模塊

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 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>
    <parent>
        <groupId>com.xxxx</groupId>
        <artifactId>micro-shop</artifactId>
        <version>1.0.1</version>
    </parent>
    <artifactId>common-service</artifactId>
    <!-- 打包方式默認(rèn)就是jar! -->
    <packaging>jar</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 聲明commons-io,繼承父工程版本 -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
    </dependencies>

</project>
  1. 用戶模塊 (user-service)
    1. 創(chuàng)建模塊

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

  1. 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>  
  <parent> 
    <groupId>com.xxxx</groupId>  
    <artifactId>micro-shop</artifactId>  
    <version>1.0.1</version> 
  </parent>  
  <artifactId>user-service</artifactId>  
  <packaging>war</packaging>

  <properties> 
    <maven.compiler.source>17</maven.compiler.source>  
    <maven.compiler.target>17</maven.compiler.target>  
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
  </properties>

  <dependencies>
    <!-- 添加spring-context 自動(dòng)傳遞 core / beans -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>

    <!-- 添加jackson-databind 自動(dòng)傳遞 core / annotations -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
  </dependencies>
</project>

  1. 訂單模塊 (order-service)
    1. 創(chuàng)建模塊

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github

高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階,java,maven,github文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-786138.html

  1. 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>
    <parent>
        <groupId>com.xxxx</groupId>
        <artifactId>micro-shop</artifactId>
        <version>1.0.1</version>
    </parent>

    <artifactId>order-service</artifactId>
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 繼承父工程依賴版本 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>

        <!-- 繼承父工程依賴版本 -->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
        </dependency>
    </dependencies>

</project>

六、Maven核心掌握總結(jié)

核心點(diǎn) 掌握目標(biāo)
安裝 maven安裝、環(huán)境變量、maven配置文件修改
工程創(chuàng)建 gavp屬性理解、JavaSE/EE工程創(chuàng)建、項(xiàng)目結(jié)構(gòu)
依賴管理 依賴添加、依賴傳遞、版本提取、導(dǎo)入依賴錯(cuò)誤解決
構(gòu)建管理 構(gòu)建過(guò)程、構(gòu)建場(chǎng)景、構(gòu)建周期等
繼承和聚合 理解繼承和聚合作用、繼承語(yǔ)法和實(shí)踐、聚合語(yǔ)法和實(shí)踐

到了這里,關(guān)于高效構(gòu)建Java應(yīng)用:Maven入門和進(jìn)階的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Java 進(jìn)階篇】Maven 使用詳解:打造便捷高效的項(xiàng)目構(gòu)建利器

    【Java 進(jìn)階篇】Maven 使用詳解:打造便捷高效的項(xiàng)目構(gòu)建利器

    在軟件開(kāi)發(fā)的道路上,項(xiàng)目構(gòu)建是一個(gè)不可避免的過(guò)程。而Maven,作為一個(gè)強(qiáng)大的項(xiàng)目管理和構(gòu)建工具,為開(kāi)發(fā)者提供了一套標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu)和構(gòu)建流程。本文將圍繞Maven的使用詳解,手把手地帶你探索Maven的世界,讓你在項(xiàng)目構(gòu)建的征途上更加得心應(yīng)手。 Maven是一個(gè)項(xiàng)目管

    2024年01月22日
    瀏覽(48)
  • 使用Maven容器打包Java項(xiàng)目:一步步實(shí)現(xiàn)高效構(gòu)建

    在Java開(kāi)發(fā)中,使用Maven作為構(gòu)建工具是一個(gè)普遍的選擇。它提供了簡(jiǎn)單易用的方式來(lái)管理依賴、編譯代碼、運(yùn)行單元測(cè)試并打包項(xiàng)目。本文將詳細(xì)介紹如何使用Maven容器打包Java項(xiàng)目,讓您的項(xiàng)目構(gòu)建過(guò)程更加高效和可靠。 在開(kāi)始之前,請(qǐng)確保您已經(jīng)安裝了Maven和Docker,并設(shè)置

    2024年02月13日
    瀏覽(19)
  • 【Idea+Maven+Git:構(gòu)建高效Java項(xiàng)目的強(qiáng)大組合】

    【Idea+Maven+Git:構(gòu)建高效Java項(xiàng)目的強(qiáng)大組合】

    在當(dāng)今的軟件開(kāi)發(fā)世界中,集成開(kāi)發(fā)環(huán)境(IDE)、構(gòu)建工具和版本控制系統(tǒng)是每個(gè)項(xiàng)目不可或缺的組成部分。本文將深入探討這三個(gè)工具:IntelliJ IDEA、Maven和Git,以及它們?nèi)绾螀f(xié)同工作,幫助開(kāi)發(fā)者構(gòu)建更高效、更可靠的項(xiàng)目。上一篇介紹了Git的分支管理策略,本文將介紹相

    2024年02月20日
    瀏覽(25)
  • 高效使用Java構(gòu)建工具|Maven篇|云效工程師指北

    高效使用Java構(gòu)建工具|Maven篇|云效工程師指北

    大家好,我是胡曉宇,目前在云效主要負(fù)責(zé)Flow流水線編排、任務(wù)調(diào)度與執(zhí)行引擎相關(guān)的工作。 作為一個(gè)有多年Java開(kāi)發(fā)測(cè)試工具鏈開(kāi)發(fā)經(jīng)驗(yàn)的CRUD專家,使用過(guò)所有主流的Java構(gòu)建工具,對(duì)于如何高效使用Java構(gòu)建工具沉淀了一套方法。眾所周知,當(dāng)前最主流的Java構(gòu)建工具為Ma

    2024年02月03日
    瀏覽(20)
  • 【Maven】讓maven更高效,優(yōu)化maven構(gòu)建項(xiàng)目速度

    【Maven】讓maven更高效,優(yōu)化maven構(gòu)建項(xiàng)目速度

    打開(kāi)idea的setting,找到maven,設(shè)置它多線程數(shù),重啟后即可! 我這里是8,你們可以隨便設(shè)置。 如下圖:

    2024年02月14日
    瀏覽(27)
  • 【Java架構(gòu)-包管理工具】-Maven進(jìn)階(二)

    【Java架構(gòu)-包管理工具】-Maven進(jìn)階(二)

    Maven作為Java后端使用頻率非常高的一款依賴管理工具,在此咱們由淺入深,分三篇文章(Maven基礎(chǔ)、Maven進(jìn)階、私服搭建)來(lái)深入學(xué)習(xí)Maven,此篇為開(kāi)篇主要介紹Maven進(jìn)階知識(shí),包含坐標(biāo)、依賴、倉(cāng)庫(kù)、生命周期、插件、繼承 ??坐標(biāo)是構(gòu)件的唯一標(biāo)識(shí),Maven 坐標(biāo)的元素包括

    2024年02月11日
    瀏覽(20)
  • 本地構(gòu)建包含java和maven的鏡像

    本地構(gòu)建包含java和maven的鏡像

    目錄 1.前提條件 2.下載 2.1.創(chuàng)建Dockerfile 3.構(gòu)建鏡像 參考文章 本地環(huán)境需要的系統(tǒng)和軟件 win10 + Docker Desktop + Powershell 圖1 Win10安裝Docker后,直接在Powershell使用Docker命令 有些Developer不習(xí)慣win10系統(tǒng),卻想要使用Linux,推薦以下方式 win10 + WSL2 + Ubuntu(截止202308最新版本是20.04.xx) +D

    2024年02月13日
    瀏覽(28)
  • 【Maven】Maven入門,Java界的Anaconda!

    【Maven】Maven入門,Java界的Anaconda!

    官方文檔:Apache Maven 的本質(zhì)是一個(gè)軟件項(xiàng)目管理和理解工具?;陧?xiàng)目對(duì)象模型 (Project Object Model,POM) 的概念,Maven 可以從一條中心信息管理項(xiàng)目的構(gòu)建、報(bào)告和文檔。 就像Python和Anaconda的關(guān)系?? 可以幫助Javer完成構(gòu)建、文檔生成、報(bào)告、依賴、發(fā)布、分發(fā)等等功能! 可以

    2024年02月08日
    瀏覽(18)
  • Java Maven 構(gòu)建項(xiàng)目里面有個(gè)聚合的概念

    Java Maven 構(gòu)建項(xiàng)目里面有個(gè)聚合的概念

    Java 項(xiàng)目里面有個(gè)聚合的概念,它沒(méi)有.net里面解決方案(solution)的能力,可以統(tǒng)一的編譯項(xiàng)目下的所有包,或設(shè)置統(tǒng)一的打包路徑,使用maven編譯后的產(chǎn)物也不會(huì)像.net那樣編譯到當(dāng)前項(xiàng)目的bin文件夾下面,而是統(tǒng)一的生成到配置好的 settings.xml 文件的 localRepository 配置節(jié)下的路

    2024年02月14日
    瀏覽(27)
  • Java開(kāi)發(fā)+Intellij-idea+Maven+工程構(gòu)建

    Java開(kāi)發(fā)+Intellij-idea+Maven+工程構(gòu)建

    Intellij-idea是一款流行的Java集成開(kāi)發(fā)環(huán)境,它支持Maven作為項(xiàng)目管理和構(gòu)建工具。Maven可以幫助開(kāi)發(fā)者自動(dòng)下載項(xiàng)目依賴的jar包,執(zhí)行編譯、測(cè)試、打包等生命周期任務(wù)。本資源將介紹如何在Intellij-idea中創(chuàng)建、導(dǎo)入、轉(zhuǎn)換和編譯Maven工程,以及如何配置Maven的相關(guān)參數(shù)和插件。

    2024年02月01日
    瀏覽(102)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包