【Maven】介紹、下載及安裝、集成IDEA

目錄

一、什么是Maven

Maven的作用

Maven模型

Maven倉庫

二、下載及安裝

三、IDEA集成Maven

1、POM配置詳解

2、配置Maven環境

局部配置

全局設置

四、創建Maven項目

五、Maven坐標詳解

六、導入Maven項目

方式1:使用Maven面板,快速導入項目

方式2:使用idea導入模塊項目

七、依賴管理

添加依賴的方式:

1.利用中央倉庫搜索的依賴坐標

2.利用IDEA工具搜索依賴

依賴傳遞

排除依賴

依賴范圍

八、生命周期

九、附錄

更新依賴索引

清理maven倉庫


一、什么是Maven

Maven是Apache旗下的一個開源項目,是一款用于管理和構建java項目的工具。

?Apache 軟件基金會,成立于1999年7月,是目前世界上最大的最受歡迎的開源軟件基金會,也是一個專門為支持開源項目而生的非盈利性組織。

開源項目:Welcome to The Apache Software Foundation!

它基于項目對象模型 (Project Object Model , 簡稱: POM) 的概念。

?官網:https://maven.apache.org/

Maven的作用

  1. 依賴(jar包)管理

  2. 統一項目結構

  3. 項目構建

Maven模型

  • 項目對象模型 (Project Object Model)

  • 依賴管理模型(Dependency)

  • 構建生命周期/階段(Build lifecycle & phases)

  1. 構建生命周期/階段(Build lifecycle & phases)
    上圖中紫色框起來的部分,就是用來完成標準化構建流程 。當我們需要編譯,Maven提供了一個編譯插件供我們使用;當我們需要打包,Maven就提供了一個打包插件供我們使用等。

    通過插件就可以完成maven標準化構建,在執行這些操作的時候,不同的階段,就會有不同的文件產生,比如:編譯階段就會有編譯之后的字節碼文件產生、打包階段就有打包之后的jar文件產生,這些文件都被放在target目錄下。
  2. 項目對象模型 (Project Object Model)
    將我們自己的項目抽象成一個對象模型,有自己專屬的坐標。
    (坐標,就是資源(jar包)的唯一標識,通過坐標可以定位到所需資源(jar包)位置 )

    POM是指,在maven項目中,可以通過pom.xml當中配置的一小段描述Maven工程。(通過maven坐標可以唯一標識定位一個項目)。如下圖所示是一個Maven項目:
  3. 依賴管理模型(Dependency)
    如果當前maven項目中還需要依賴其他的資源,就可以在pom.xml中添加依賴管理模型(Dependency),在dependency標簽中添加需要添加的依賴的坐標,當我們添加依賴的坐標之后,maven就能自動從倉庫中去查找這個依賴。

Maven倉庫

倉庫:用于存儲資源,管理各種jar包

倉庫的本質就是一個目錄(文件夾),這個目錄被用來存儲開發中所有依賴(就是jar包)和插件

Maven倉庫分為:

  • 本地倉庫:自己計算機上的一個目錄(用來存儲jar包)

  • 中央倉庫:由Maven團隊維護的全球唯一的。倉庫地址:Central Repository:

  • 遠程倉庫(私服):一般由公司團隊搭建的私有倉庫

當項目中使用坐標引入對應依賴jar包后,首先會查找本地倉庫中是否有對應的jar包

  • 如果有,則在項目直接引用

  • 如果沒有,則去中央倉庫中下載對應的jar包到本地倉庫

    由于中央倉庫是全球唯一的,本地倉庫連接中央倉庫是要連接國外的網站的,這個過程是比較慢的,但為了提高下載jar包的速度,我們可以引入遠程倉庫(私服),這個私服一般是公司團隊自己搭建的。

如果還可以搭建遠程倉庫(私服),將來jar包的查找順序則變為: 本地倉庫 --> 遠程倉庫(私服)--> 中央倉庫,如果本地倉庫和私服都沒有,它會先從中央倉庫下載到私服,然后再下載到本地倉庫。


二、下載及安裝

下載地址:https://maven.apache.org/download.cgi

Maven安裝配置步驟:

  1. 解壓安裝

  2. 配置倉庫

  3. 配置Maven環境變量(即可以在任意目錄下執行maven的指令)

1、解壓 apache-maven-3.6.1-bin.zip(解壓即安裝)

建議解壓到沒有中文、特殊字符的路徑下。

點開之后,發現還有一級目錄,此時我們可以直接將它解壓,不需要再新建文件夾

解壓縮后的目錄結構如下:

  • bin目錄 : 存放的是可執行命令。(mvn 命令重點關注)

  • conf目錄 :存放Maven的配置文件。(settings.xml配置文件后期需要修改)

  • lib目錄 :存放Maven依賴的jar包。(Maven也是使用java開發的,所以它也依賴其他的jar包)

2、配置本地倉庫

在自己計算機上新一個目錄(本地倉庫,用來存儲jar包)

進入到conf目錄下修改 settings.xml 配置文件

1). 使用記事本軟件,打開settings.xml文件,定位到53行

2). 復制<localRepository>標簽,粘貼到注釋的外面(55行)

3). 復制之前新建的用來存儲jar包的路徑,替換掉<localRepository>標簽體內容

3、配置阿里云私服

由于中央倉庫在國外,所以下載jar包速度可能比較慢,而阿里公司提供了一個遠程倉庫,里面基本也都有開源項目的jar包。

進入到conf目錄下修改settings.xml配置文件:

1). 使用超級記事本軟件,打開settings.xml文件,定位到160行左右

2). 在<mirrors>標簽下為其添加子標簽<mirror>,內容如下:

<mirror> ?<id>alimaven</id> ?<name>aliyun maven</name> ?<url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> ? ? ? ? ?
</mirror>

注意配置的位置,在<mirrors> ... </mirrors> 中間添加配置。如下圖所示:

注: 只可配置一個<mirror>(另一個要注釋!) ,不然兩個可能發生沖突,導致jar包無法下載!!!!

4、配置環境變量

Maven環境變量的配置類似于JDK環境變量配置一樣

1). 在系統變量處新建一個變量MAVEN_HOME

  • MAVEN_HOME環境變量的值,設置為maven的解壓安裝目錄

2). 在Path中進行配置

  • PATH環境變量的值,設置為:%MAVEN_HOME%\bin

3). 打開DOS命令提示符進行驗證,出現如圖所示表示安裝成功

mvn -v

MAVEN想要成功的運行,它是基于JDK環境的


三、IDEA集成Maven

1、POM配置詳解

POM (Project Object Model) :指的是項目對象模型,用來描述當前的maven項目。

  • 使用pom.xml文件來實現

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"><!-- POM模型版本 --><modelVersion>4.0.0</modelVersion>
?<!-- 當前項目坐標 --><groupId>com.itheima</groupId><artifactId>maven_project1</artifactId><version>1.0-SNAPSHOT</version><!-- 打包方式 --><packaging>jar</packaging></project>
  • <project> :文檔聲明,pom文件的根標簽,表示當前maven項目

  • <modelVersion> :聲明項目描述遵循哪一個POM模型版本

    • 雖然模型本身的版本很少改變,但它仍然是必不可少的。目前POM模型版本是4.0.0

  • 坐標 :<groupId>、<artifactId>、<version>

    • 定位項目在本地倉庫中的位置,由以上三個標簽組成一個坐標

  • <packaging> :maven項目的打包方式,通常設置為jar或war(默認值:jar)

我們要想在IDEA中使用Maven進行項目構建,就需要在IDEA中集成Maven

2、配置Maven環境

局部配置

1、選擇 IDEA中 File => Settings => Build,Execution,Deployment => Build Tools => Maven

2、設置IDEA使用本地安裝的Maven,并修改配置文件及本地倉庫路徑

?

Maven home path :指定當前Maven的安裝目錄

User settings file :指定當前Maven的settings.xml配置文件的存放路徑

Local repository :指定Maven的本地倉庫的路徑 (如果指定了settings.xml, 這個目錄會自動讀取出來, 可以不用手動指定)

3、配置工程的編譯版本為11

由于我目前使用的是JAVA11的版本,所以配置的是11,如果不是該版本的JDK,將數字都改為自己JDK版本的數字即可。

  • Maven默認使用的編譯版本為5(版本過低)

4、配置java字節碼文件版本號

java字節碼文件的版本號和jdk的版本相對應


全局設置

上述配置的maven環境,只是針對于當前工程的,如果我們再創建一個project,又恢復成默認的配置了。 要解決這個問題, 我們就需要配置全局的maven環境。

1、進入到IDEA歡迎頁面

  • 選擇 IDEA中 File => close project

2、打開 All settings , 選擇 Build,Execution,Deployment => Build Tools => Maven

3、配置工程的編譯版本為11

這里所設置的maven的環境信息,并未指定任何一個project,此時設置的信息就屬于全局配置信息。 以后,我們再創建project,默認就是使用我們全局配置的信息。


四、創建Maven項目

1、創建一個空項目

2、文件 => 項目結構 => 創建模塊,選擇Maven,點擊Next

3、填寫模塊名稱,坐標信息,點擊finish,創建完成

4、在Maven工程下,創建HelloWorld類

  • Maven項目的目錄結構:

    maven-project01
    ????????|--- src (源代碼目錄和測試代碼目錄)
    ????????????????|--- main (源代碼目錄)
    ????????????????????????|--- java (源代碼java文件目錄)
    ????????????????????????|--- resources (源代碼配置文件目錄)
    ????????|--- test (測試代碼目錄)
    ????????????????|--- java (測試代碼java目錄)
    ????????????????|--- resources (測試代碼配置文件目錄)
    ????????|--- target (編譯、打包生成文件存放目錄

  • 但由于test下的resource不常用,所以創建maven的時候它并沒有給我們創建出來,如果我們需要可以new一個directory,此時它會自動聯想出來

5、編寫 HelloWorld,并運行

public class HelloWorld {public static void main(String[] args) {System.out.println("Hello Maven ...");}
}

五、Maven坐標詳解

什么是坐標?

  • Maven中的坐標是 資源的唯一標識 , 通過該坐標可以唯一定位資源位置

  • 使用坐標來定義項目或引入項目中需要的依賴

Maven坐標主要組成

  • groupId:定義當前Maven項目隸屬組織名稱
    通常是公司或組織域名的倒序,例如:com.itheima,通常也會加上項目名稱(因為一個項目可能有很多工程)

  • artifactId:定義當前Maven項目名稱(通常是模塊名稱,例如 order-service、goods-service)

  • version:定義當前項目版本號
    例如:SNAPSHOT 表示快照版本,正在迭代過程中,不穩定的版本
    例如:RELEASE 表示正式版本

如下就是使用坐標表示一個項目:

<groupId>com.itheima</groupId>
<artifactId>maven-project01</artifactId>
<version>1.0-SNAPSHOT</version>

注意:

  • 上面所說的資源可以是插件、依賴、當前項目。

  • 我們的項目如果被其他的項目依賴時,也是需要坐標來引入的。


六、導入Maven項目

方式1:使用Maven面板,快速導入項目

打開IDEA,選擇右側Maven面板,點擊 + 號,選中對應項目的pom.xml文件,雙擊即可

說明:如果沒有Maven面板,選擇 View => Appearance => Tool Window Bars

刪除maven工程:直接右擊刪除,但是它并不會將磁盤中的maven工程刪除,如果需要刪除磁盤中的maven工程,則需要去資源管理器中刪除它的文件

方式2:使用idea導入模塊項目

File => Project Structure => Modules => + => Import Module

找到要導入工程的pom.xml


七、依賴管理

依賴:指當前項目運行所需要的jar包。一個項目中可以引入多個依賴:

例如:在當前工程中,我們需要用到logback來記錄日志,此時就可以在maven工程的pom.xml文件中,引入logback的依賴。具體步驟如下:

  1. 在pom.xml中編寫<dependencies>標簽

  2. 在<dependencies>標簽中使用<dependency>引入坐標

  3. 定義坐標的 groupId、artifactId、version

    <dependencies><!-- 第1個依賴 : logback --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency><!-- 第2個依賴 : junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
    </dependencies>
  4. 點擊刷新按鈕,引入最新加入的坐標

    刷新依賴:保證每一次引入新的依賴,或者修改現有的依賴配置,都可以加入最新的坐標

注意事項:

  1. 第一次使用這個依賴是沒有提示的

  2. 如果引入的依賴,在本地倉庫中不存在,將會連接遠程倉庫 / 中央倉庫,然后下載依賴(這個過程會比較耗時,耐心等待)

  3. 如果不知道依賴的坐標信息,可以到mvn的中央倉庫(https://mvnrepository.com/)中搜索


添加依賴的方式:

1.利用中央倉庫搜索的依賴坐標

一般會參考Usages這個指標去選定版本

2.利用IDEA工具搜索依賴

熟練上手maven后,快速導入依賴


依賴傳遞

依賴具有傳遞性

早期我們沒有使用maven時,向項目中添加依賴的jar包,需要把所有的jar包都復制到項目工程下。如下圖所示,需要logback-classic時,由于logback-classic又依賴了logback-core和slf4j,所以必須把這3個jar包全部復制到項目工程下

我們現在使用了maven,當項目中需要使用logback-classic時,只需要在pom.xml配置文件中,添加logback-classic的依賴坐標即可。

在pom.xml文件中只添加了logback-classic依賴,但由于maven的依賴具有傳遞性,所以會自動把所依賴的其他jar包也一起導入。

依賴傳遞可以分為:

  1. 直接依賴:在當前項目中通過依賴配置建立的依賴關系

  2. 間接依賴:被依賴的資源如果依賴其他資源,當前項目間接依賴其他資源

比如以上圖中:

  • projectA依賴了projectB。對于projectA 來說,projectB 就是直接依賴。

  • 而projectB依賴了projectC及其他jar包。 那么此時,在projectA中也會將projectC的依賴傳遞下來。對于projectA 來說,projectC就是間接依賴。

在IDEA中,它還給我們提供了一種可視化的方式:

首先打開想要查看依賴情況的項目的pom文件:


排除依賴

問題:之前我們講了依賴具有傳遞性。那么A依賴B,B依賴C,如果A不想將C依賴進來,是否可以做到?

答案:在maven項目中,我們可以通過排除依賴來實現。

排除依賴:指主動斷開依賴的資源。(被排除的資源無需指定版本)

<dependency><groupId>com.itheima</groupId><artifactId>maven-projectB</artifactId><version>1.0-SNAPSHOT</version><!--排除依賴, 主動斷開依賴的資源--><exclusions><exclusion><groupId>junit</groupId><artifactId>junit</artifactId></exclusion></exclusions>
</dependency>

依賴排除示例:

  • maven-projectA依賴了maven-projectB,maven-projectB依賴了Junit。基于依賴的傳遞性,所以maven-projectA也依賴了Junit

  • 使用排除依賴后


依賴范圍

在項目中導入依賴的jar包后,默認情況下,可以在任何地方使用。

如果希望限制依賴的使用范圍,可以通過<scope>標簽設置其作用范圍。

作用范圍:

  1. 主程序范圍有效(main文件夾范圍內)

  2. 測試程序范圍有效(test文件夾范圍內)

  3. 是否參與打包運行(package指令范圍內)

如上圖所示,給junit依賴通過scope標簽指定依賴的作用范圍。 那么這個依賴就只能作用在測試環境,其他環境下不能使用。

scope標簽的取值范圍:

scope主程序測試程序打包(運行)范例
compile(默認)YYYlog4j
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驅動

測試log4j是否參與項目打包,需要注意:

maven中默認提供的打包插件,只能將當前項目的資源打包進去,它所依賴的jar包并不會打包進去

如果需要將依賴的jar包也打包進去,則需要配置打包插件,后面學習web開發的時候有更便捷的方式!


八、生命周期

介紹

Maven的生命周期就是為了對所有的構建過程進行抽象和統一。 描述了一次項目構建,經歷哪些階段。

在Maven出現之前,項目構建的生命周期就已經存在,軟件開發人員每天都在對項目進行清理,編譯,測試及部署。雖然大家都在不停地做構建工作,但公司和公司間、項目和項目間,往往使用不同的方式做類似的工作。

Maven從大量項目和構建工具中學習和反思,然后總結了一套高度完美的,易擴展的項目構建生命周期。這個生命周期包含了項目的清理,初始化,編譯,測試,打包,集成測試,驗證,部署和站點生成等幾乎所有構建步驟。

Maven對項目構建的生命周期劃分為3套(相互獨立):

  • clean:清理工作。(主要用來清理上一次項目構建所產生的一些文件,比如編譯之后的class文件、字節碼文件等)

  • default:核心工作。如:編譯、測試、打包、安裝、部署等。

  • site:生成報告、發布站點等。

三套生命周期又包含哪些具體的階段呢, 我們來看下面這幅圖:

每套生命周期包含一些階段(phase),階段是有順序的,后面的階段依賴于前面的階段。

我們看到這三套生命周期,里面有很多很多的階段,這么多生命周期階段,其實我們常用的并不多,主要關注以下幾個:

? clean:移除上一次構建生成的文件

? compile:編譯項目源代碼

? test:使用合適的單元測試框架運行測試(junit)

? package:將編譯后的文件打包,如:jar、war等

? install:安裝項目到本地倉庫

IDEA工具為了方便程序員使用maven生命周期,在右側的maven工具欄中,已給出快速訪問通道

生命周期的順序是:clean --> validate --> compile --> test --> package --> verify --> install --> site --> deploy

我們需要關注的就是:clean --> compile --> test --> package --> install

說明:在同一套生命周期中,我們在執行后面的生命周期時,前面的生命周期都會執行。

思考:當運行package生命周期時,clean、compile生命周期會不會運行?

clean不會運行,compile會運行。 因為compile與package屬于同一套生命周期,而clean與package不屬于同一套生命周期。

執行

在日常開發中,當我們要執行指定的生命周期時,有兩種執行方式:

  1. 在idea工具右側的maven工具欄中,選擇對應的生命周期,雙擊執行

  2. 在DOS命令行中,通過maven命令執行

方式一:在idea中執行生命周期

  • 選擇對應的生命周期,雙擊執行

compile:

會將編譯好的存放在target下,classes里面存放的就是編譯之后的字節碼文件

test:

package:

打包后的文件會存放在target這個目錄下

install:

將當前的項目打包放在本地倉庫

跳過測試階段:

clean:

方式二:在命令行中執行生命周期

進入到DOS命令行

Maven的生命周期是抽象的,這意味著生命周期本身不做任何實際工作。在Maven的設計中,實際任務(如源代碼編譯)都交由插件來完成。


九、附錄

更新依賴索引

有時候給idea配置完maven倉庫信息后,在idea中依然搜索不到倉庫中的jar包。這是因為倉庫中的jar包索引尚未更新到idea中。這個時候我們就需要更新idea中maven的索引了,具體做法如下:

打開設置----搜索maven----Repositories----選中本地倉庫-----點擊Update

清理maven倉庫

初始情況下,我們的本地倉庫是沒有任何jar包的,此時會從私服去下載(如果沒有配置,就直接從中央倉庫去下載),可能由于網絡的原因,jar包下載不完全,這些不完整的jar包都是以lastUpdated結尾。此時,maven不會再重新幫你下載,需要你刪除這些以lastUpdated結尾的文件,然后maven才會再次自動下載這些jar包。

如果本地倉庫中有很多這樣的以lastUpadted結尾的文件,可以定義一個批處理文件,在其中編寫如下腳本來刪除:

set REPOSITORY_PATH=E:\develop\apache-maven-3.6.1\mvn_repo
rem 正在搜索...
?
del /s /q %REPOSITORY_PATH%\*.lastUpdated
?
rem 搜索完畢
pause

操作步驟如下:

1). 定義批處理文件del_lastUpdated.bat (直接創建一個文本文件,命名為del_lastUpdated,后綴名直接改為bat即可 )

2). 在上面的bat文件上右鍵---》編輯 。修改文件:

修改完畢后,雙擊運行即可刪除maven倉庫中的殘留文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696913.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696913.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696913.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React Native框架開發介紹,以及其優點

大家好&#xff0c;我是咕嚕鐵蛋&#xff0c;在今天的文章中&#xff0c;我通過科技手段和大家一起探討一下React Native框架的開發介紹以及其優點。我深知選擇合適的開發工具對于項目的成功至關重要。而React Native作為一款流行的跨平臺移動應用開發框架&#xff0c;其獨特之…

Linux并發與競爭的基本概念

一. 簡介 Linux是一個多任務操作系統&#xff0c;肯定會存在多個任務共同操作同一段內存或者設備的情況&#xff0c; 多個任務甚至中斷都能訪問的資源叫做共享資源&#xff0c;在驅動開發中要注意對共享資源的保護&#xff0c;也就是要處理對共享資源的并發訪問。比如&#xf…

【服務器數據恢復】FreeNAS+ESXi虛擬機數據恢復案例

服務器數據恢復環境&#xff1a; 一臺服務器通過FreeNAS&#xff08;本案例使用的是UFS2文件系統&#xff09;實現iSCSI存儲&#xff0c;整個UFS2文件系統作為一個文件掛載到ESXi虛擬化系統&#xff08;安裝在另外2臺服務器上&#xff09;上。該虛擬化系統一共有5臺虛擬機&…

2024水科技大會暨技術裝備成果展覽會——高品質供水和飲用水水源安全保障論壇

供水與飲水安全直接關系到人民群眾的生活與健康&#xff0c;切實做好城市供水與飲水安全保障工作&#xff0c;是把以人為本真正落到實處的一項緊迫任務。近年來&#xff0c;中央和地方加大了城鄉供水與飲水安全保障工作的力度&#xff0c;對標最優質供水城市建設要求&#xff0…

[Angular 基礎] - service 服務

[Angular 基礎] - service 服務 之前的筆記就列舉三個好了……沒想到 Angular 東西這么多(&#xff70; &#xff70;;)……全加感覺越來越湊字數了 [Angular 基礎] - 視圖封裝 & 局部引用 & 父子組件中內容傳遞 [Angular 基礎] - 生命周期函數 [Angular 基礎] - 自…

請簡述你對SpringMVC的理解

SpringMVC是一種基于Java語言開發&#xff0c;實現了WebMVC設計模式&#xff0c;請求驅動類型 的輕量級Web框架。 采用了MVC架構模式的思想&#xff0c;通過把Model&#xff0c;View&#xff0c;Controller分離&#xff0c;將Web層進 行職責解耦&#xff0c;從而把復雜的Web應…

idea打開項目白屏

解決方法&#xff1a; 右鍵“最大化” idea打開項目白板解決方案_idea打開白屏-CSDN博客 IDEA 2022 CPU占用100%的問題及解決方法_java_腳本之家

STM32控制數碼管從0顯示到99

首先 先畫電路圖吧&#xff01;打開proteus&#xff0c;導入相關器件&#xff0c;繪制電路圖。如下&#xff1a;&#xff08;記得要保存啊&#xff01;發現模擬一遍程序就自動退出了&#xff0c;有bug&#xff0c;我是解決不了&#xff0c;所以就是要及時保存&#xff0c;自己重…

計算機組成原理(10)----微程序控制器

目錄 1.微程序控制器的設計思想 2.微指令的基本格式 3.微程序控制器的基本結構 &#xff08;1&#xff09;控制存儲器CM &#xff08;2&#xff09;CMAR &#xff08;3&#xff09;地址譯碼 &#xff08;4&#xff09;CMDR &#xff08;5&#xff09;微地址形成部件 &…

31.云原生Istio可觀測性之官網Bookinfo應用實戰演示

云原生專欄大綱 文章目錄 可觀測性kiali介紹Overview&#xff08;概觀&#xff09;Application&#xff08;應用維度&#xff09;workloads&#xff08;負載維度&#xff09;Services&#xff08;服務維度&#xff09;Istio Config&#xff08;配置維度&#xff09; Kiali部署…

音頻聲波的主觀感受

一、響度 聲壓是“客觀”的&#xff0c;響度是“主觀”的。 響度又稱音量。人耳感受到的聲音強弱&#xff0c;它是人對聲音大小的一個主觀感覺量。響度的大小決定于聲音接收處的波幅&#xff0c;就同一聲源來說&#xff0c;波幅傳播的愈遠&#xff0c;響度愈小…

React18原理: React核心對象之Update、UpdateQueue、Hook、Task對象

Update 與 UpdateQueue 對象 1 ) 概述 在fiber對象中有一個屬性 fiber.updateQueue是一個鏈式隊列&#xff08;即使用鏈表實現的隊列存儲結構&#xff09;是和頁面更新有關的 2 &#xff09;Update對象相關的數據結構 // https://github.com/facebook/react/blob/v18.2.0/pa…

【Nginx】Nginx配置反向代理 和 https

nginx.conf配置 進入linux /etc/nginx/ 打開nginx.conf 進行以下配置 http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {#監聽443端口listen 443 ssl;#你的域名server_name huiblog.top;#ssl證書的pe…

VSCode The preLaunchTask ‘C/C++: clang++ 生成活動文件‘ terminated with exit code -1

更改tasks.json文件里面的type為shell 選擇g 選擇g&#xff0c;然后點回到text.c&#xff0c;按下F5. 得到結果。 文中內容參考: 從零開始手把手教你配置屬于你的VS Code_嗶哩嗶哩_bilibili https://blog.csdn.net/qq_63872647/article/details/128006861

【EasyV】QGIS轉換至EasyV

QGIS轉換至EasyV 第一步&#xff1a;導入QGIS第二步 坐標系轉換第三步 集合修正第四步 重命名字段第五步 導出WGS geojson坐標第六步 導入EasyV 第一步&#xff1a;導入QGIS 第二步 坐標系轉換 第三步 集合修正 第四步 重命名字段 第五步 導出WGS geojson坐標 第六步 導入EasyV…

【es6】模版字面量/模版字符串,標簽函數/String.raw()靜態方法

模版字符串經常用&#xff0c;但是這個標簽函數的功能你肯定不知道&#xff0c;請看官網文檔 看完你需要知道 可以自定義標簽函數String.raw 的用法 唯一一個內置的模版字符串標簽函數第一個參數具有 raw 屬性的對象&#xff0c;值時一個類數組字符串對象模版字面量的緩存機制…

【vue vue-seamless-scroll】解決vue-seamless-scroll鼠標懸浮才滾動或者只滾動一次就失效的問題

解決問題&#xff1a;使用vue-seamless-scroll發現只有鼠標懸浮上去才滾動&#xff0c;而且滾動一次停止了 目標效果&#xff1a; 解決方案&#xff1a; 最后發現是因為數據需要在頁面掛載好就賦值&#xff0c;否則頁面在加載完成后&#xff0c;數據無法自動滾動。但因為數據…

c++:藍橋杯的基礎算法2(構造,模擬)+練習鞏固

目錄 構造 構造的基礎概念&#xff1a; 模擬 練習1&#xff1a;掃雷 練習2&#xff1a;灌溉 練習3&#xff1a;回文日期 構造 構造的基礎概念&#xff1a; 構造算法是一種用于解決特定問題的算法設計方法。在C語言中&#xff0c;構造算法通常涉及到創建一個函數或類來實…

ARM服務器上部署zookeeper集群

由于ARM服務器上部署zookeeper集群,會存在加載不到主類問題,現在把遇到的問題進行總結下,問題如下: [rootnode206 apache-zookeeper-3.5.10]# bin/zkServer.sh start ZooKeeper JMX enabled by default Using config: /data1/software/apache-zookeeper-3.5.10/bin/../conf/…

四、Burpsuite工具之proxy模塊詳解-intercept功能

前言&#xff1a; 過了一個年&#xff0c;感覺好久都沒有更新了&#xff0c;今天就從burpsuite的更新開始吧。 前面已經說過了burpsuite的安裝和proxy代理的配置&#xff0c;今天說一下proxy模塊中非常有用的intercept功能。 intercept功能介紹&#xff1a; intercept是攔截…