日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java项目开发管理工具-Maven基础

發布時間:2023/12/14 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java项目开发管理工具-Maven基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一、Maven簡介
    • 二、下載與安裝
    • 三、Maven基礎概念*
      • 3.1 倉庫
      • 3.2 坐標
      • 3.3 倉庫配置
    • 四、第一個Maven項目(手工制作)*
      • 4.1 Maven項目結構
      • 4.2 Maven項目構建(常用構建指令)
      • 4.3 插件創建工程結構
    • 五、第二個Maven項目(IDEA生成)*
      • 5.1 Maven工程idea創建
      • 4.2 tomcat插件安裝與web工程啟動
    • 六、依賴管理*
      • 6.1 依賴配置
      • 6.1 依賴管理
        • 6.1.1 依賴傳遞
        • 6.1.2 依賴范圍
    • 七、生命周期與插件
      • 7.1 構建生命周期
      • 7.2 插件

一、Maven簡介

1.Maven是什么:

  • Maven 的本質是一個項目管理工具,將項目開發和管理過程抽象成一個項目對象模型(POM)
  • POM(Project Object Model): 項目對象模型

    ?

2.Maven的作用:

  • 項目構建: 提供標準的、跨平臺的自動化項目構建方式
  • 依賴管理: 方便快捷的管理項目依賴的資源(jar包),避免資源間的版本沖突問題
  • 統一開發結構:提供標準的、統一的項目結構

?

二、下載與安裝

1、Maven下載:

  • 官網: http://maven.apache.org
  • 下載地址: http://maven.apache.orq/download.cgi
    ?

2、Maven環境變量配置:

  • 依賴Java,需要配置JAVA HOME
  • 設置MAVEN自身的運行環境,需要配置MAVEN_HOME

?
1.配置環境變量:


2.檢測是否安裝成功:

?

三、Maven基礎概念*

3.1 倉庫

1、倉庫:
用于存儲資源,包含各種jar包

?
2、倉庫分類:

  • 本地倉庫:自己電腦上存儲資源的倉庫,連接遠程倉庫獲取資源
  • 遠程倉庫:非本機電腦上的倉庫,為本地倉庫提供資源
    • 中央倉庫:Maven團隊維護,存儲所有資源的倉庫
    • 私服:部門/公司范圍內存儲資源的倉庫,從中央倉庫獲取資源
      ?

3、私服的作用:
(因為具有版權的jar包不能夠放在中央倉庫,因此私服就顯得很重要)

  • 保存具有版權的資源,包含購買或自主研發的jar包

    • 中央倉庫中的jar都是開源的,不能存儲具有版權的資源
  • 一定范圍內共享資源,僅對內部開放,不對外共享

?

3.2 坐標

1、什么是坐標

  • Maven中的坐標用于描述倉庫中資源的位置
    https://repo1.maven.org/maven2/
    ?

2、Maven坐標主要組成

  • groupld(組織id): 定義當前Maven項目隸屬組織名稱(通常是域名反寫,例如: org.mybatis)
  • artifactld(項目id): 定義當前Maven項目名稱(通常是模塊名稱,例如CRM、SMS)
  • version(版本號): 定義當前項目版本號
  • packaging(類型): 定義該項目的打包方式(如:jar包等)
    ?

3、Maven官方中央倉庫

  • 中央倉庫: https://mvnrepository.com/
  • 倉庫中的坐標: maven工具會根據此坐標到倉庫中下載對應 jar 包

?

3.3 倉庫配置

Maven加載依賴:默認先從項目 maven 配置的本地倉庫查找,

  • 如果找到,直接使用
  • 如果沒有,默認情況下從國外 maven 中央倉庫下載,先下載到本地,再使用.(從國外下載距離遠,非常慢,有可能下載失敗)
    ?

阿里云鏡像倉庫

  • 使用國內的阿里云鏡像倉庫的話會非???#xff0c;在本地倉庫沒有時,maven 就會從國內阿內云倉庫找,如果有就下載到本地倉庫再使用,沒有就只能從國外 maven 中央倉庫下載到本地倉庫再使用

1.本地倉庫:
默認在c盤,最好更改為d盤或其它盤
?

2.更改本地倉庫位置:
打開: ?D:\serverEnvirenment\apache-maven-3.6.3\conf\settings.xml

?
3.Maven默認連接下載資源的倉庫位置
默認是國外服務器,下載較慢,可以更改為國內服務器。使用啊里去鏡像。

?

四、第一個Maven項目(手工制作)*

4.1 Maven項目結構

1、Maven工程目錄結構:
在src同目錄下放置maven工程的配置文件:pom.xml

?
2、描述Maven工程的配置文件: pom.xml(在src同層目錄下創建 pom.xml)

?

4.2 Maven項目構建(常用構建指令)

Maven 構建命令使用 mvn 開頭,后面添加功能參數,可以一次執行多個命令,使用空格分隔

?

1.首次執行命令會先下載相應的插件,maven 進行編譯、測試等用的插件,同時下載依賴。然后再進行編譯.

?
2.使用編譯(maven compile)、測試(maven test)、打包(maven package)指令

?
3.安裝到本地倉庫(mvn install)


位置是:com/eve,也就是:com.eve(groupid)

?

4.3 插件創建工程結構

1.創建工程:

mvn archetype:generate-DgroupId={project-packaging}-DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=false

2.創建java工程:

mvn archetype:generate -DgroupId=com.eve-DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false

3.創建web工程:

mvn archetype:generate -DgroupId=com.eve-DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false

要求不能是 maven 工程結構(沒有pom.xml等文件)

?

五、第二個Maven項目(IDEA生成)*

5.1 Maven工程idea創建

1.配置 maven


?
2.創建 maven java工程(使用模板)

?
3.創建 maven web項目(使用模板)


?
會發現沒有 java、test 目錄。需要我們自己創建

如果下方還沒有提示,則可以選中創建的 java 文件夾,右擊標記為 Sources Root 即可;
test 則選擇 Test Sources Root;

?

4.2 tomcat插件安裝與web工程啟動



1.在 pom.xml 中配置該插件(如果報紅,右上角會有 maven 小圖標,點擊刷新即可)

<build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version></plugin></plugins> </build>

2.啟動運行

?

六、依賴管理*

6.1 依賴配置


?

6.1 依賴管理

6.1.1 依賴傳遞

路徑優先:當依賴中出現相同的資源時,層級越深,優先級越低,層級越淺,優先級越高
聲明優先:當資源在相同層級被依賴時,配置順序靠前的覆蓋配置順序靠后的
特殊優先:當同級配置了相同資源的不同版本,后配置的覆蓋先配置的


?
可選依賴:
對外隱藏當前所依賴的資源(不想被看見)


?
排除依賴:
排除依賴指主動斷開依賴的資源,被排除的資源無需指定版本(不想用)

?

6.1.2 依賴范圍

依賴的 jar 默認情況可以在任何地方使用,可以通過 scope 標簽設定其作用范圍
?
作用范圍:

  • 主程序范圍有效(main文件夾范圍內)
  • 測試程序范圍有效(test文件夾范圍內)
  • 是否參與打包(package指令范圍內)
    ?

默認的是 compile,在主代碼、測試代碼、打包中都能夠使用,而如:junit等,我們并不想在打包中使用,并且只想在 test 中使用。

?

依賴范圍的傳遞性(了解即可):
帶有依賴范圍的資源在進行傳遞時,作用范圍將受到影響

?

七、生命周期與插件

7.1 構建生命周期

1.Maven 構建生命周期描述的是一次構建過程經歷經歷了多少個事件

?
2.Maven 對項目構建的生命周期劃分為 3 套

  • clean: 清理工作
  • default: 核心工作,例如編譯,測試,打包,部署等
  • site: 產生報告,發布站點等
    ?

3.default 構建生命周期

?

7.2 插件

1. 插件與生命周期內的階段綁定,在執行到對應生命周期時執行對應的插件功能
2. 默認maven在各個生命周期上綁定有預設的功能
3. 通過插件可以自定義其他功能

總結

以上是生活随笔為你收集整理的Java项目开发管理工具-Maven基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。