无码人妻精一区二区三区,eeuss影院www在线观看,无码精品久久久久久人妻中字,日韩av高清在线看片

推薦新聞
Apache Maven的安裝與配置詳細步驟
發(fā)布者:深藍互聯(lián)
發(fā)布時間:2024-09-10
點擊:次

Apache Maven是一個很流行的軟件項目管理和理解工具,它能夠被用來構建和管理任何基于java的項目,主要有以下幾個目標:

  • • 簡化構建過程

  • • 提供統(tǒng)一的構建系統(tǒng)

  • • 提供高質量的項目信息

  • • 鼓勵更好的開發(fā)實踐

考慮到maven的流行度,本篇就先從maven的安裝和配置講起。

1、安裝maven

maven官網最新的版本是3.9.1,我們就以此版本為例進行講解。

注:maven 3.9+以上的版本需要依賴JDK 8或者更高版本的JDK。

1.1 、下載maven

點擊apache-maven-3.9.1-bin.zip進行下載,或者直接訪問以下網址進行下載

https://dlcdn.apache.org/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.zip

1.2、解壓文件

將剛才下載下來的apache-maven-3.9.1-bin.zip文件解壓到我們常用的安裝開發(fā)工具的目錄,比如

D:\developer目錄,那么maven的主目錄就是D:\developer\apache-maven-3.9.1-bin

1.3、配置系統(tǒng)環(huán)境變量

(1)進入Windows系統(tǒng)的"高級系統(tǒng)設置",點擊右下角的“環(huán)境變量”,進入環(huán)境變量的維護頁面

(2)編輯"系統(tǒng)變量"列表中的Path配置項,在編輯頁面新增一條配置項的值,也即新安裝的maven的bin目錄的全路徑名:D:\developer\apache-maven-3.9.1-bin\bin,然后點擊確定保存。

(3)打開一個新的cmd命令行頁面,執(zhí)行下述命令

mvn -version

如果得到類似下面的響應輸出,說明安裝成功。

Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: D:\developer\apache-maven-3.9.1-bin\bin\..
Java version: 1.8.0_281, vendor: Oracle Corporation, runtime: D:\developer\Java\jdk1.8\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

2、maven配置文件詳解

我們先看一下官方給我們提供的settings.xml文件的格式,可以在maven安裝目錄下的conf目錄下找到該文件。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors/>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>

我們挑其中常用的重要配置項來看下。

2.1、localRepository配置

localRepository配置項用來配置maven的本地倉庫地址,簡單說就是用來存儲通過maven下載下來的各種jar包。如果我們的項目pom.xml文件依賴了某個jar包,默認會先從我們本地倉庫去查找,查不到的請求下,再去請求外部倉庫。

該配置的默認值是:

${user.home}/.m2/repository

${user.home}指用戶的主目錄,比如我的就是C:\Users\xt

如果我們想節(jié)省C盤的空間,想把jar包存儲到其他磁盤,可以這么設置

<localRepository>D:/programs/.m2/repository</localRepository>

2.2、servers配置

該配置項主要是用來為各個遠程倉庫配置認證信息,比如訪問遠程倉庫時需要提供用戶名和密碼信息,它的結構如下:

<servers>
    <server>
      <id>deploymentRepo</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>
    <server>
      <id>deploymentRepo2</id>
      <privateKey>/path/to/private/key</privateKey>
      <passphrase>ddddd</passphrase>
    </server>
 </servers>

結點下面可以有多個結點,其中server結點下的子結點釋義如下:

  • • id,對應repository或mirror的id,用來指定該配置項是針對哪個倉庫的,必填項

  • • username,訪問倉庫的用戶名

  • • password,訪問倉庫的密碼

  • • privateKey,訪問倉庫的私鑰

  • • passphrase,訪問倉庫的口令,可選

其中username和password成對出現(xiàn),privateKey和passphrase成對出現(xiàn)。兩種認證方式不同,我們配置時只需要選取其中一種就可以。常用的就是配置用戶名和密碼。

2.3、mirrors配置

mirrors配置項主要是用來為遠程倉庫配置鏡像站點,我們可以基于以下情況來考慮使用mirrors鏡像配置。

  • • 分擔遠程倉庫的訪問壓力,同時又不希望修改repoistory倉庫的配置

  • • 用自己的內部倉庫替換掉特定的倉庫,比如替換掉central倉庫

mirrors的結構如下:

<mirrors>
  <mirror>
    <id>nexus-aliyun</id>
    <name>Nexus aliyun</name>
    <mirrorOf>central</mirrorOf>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
   </mirror> 
</mirrors>

結點下面可以包含多個子結點,其中mirror結點下面的子結點釋義如下:

  • • id,鏡像倉庫的id,要保證唯一,不能和mirrors和repositories下面的id相同,因為鏡像倉庫本質上也是倉庫,下載jar包時,會根據此id去servers結點下面查找server結點配置的認證信息

  • • name,鏡像倉庫的名稱,方便用戶識別該倉庫

  • • mirrorOf,需要做鏡像的倉庫的id值,也就是取repository的id值

  • • url,鏡像倉庫的地址

關于此段配置,我們一般會用來替換maven的central倉庫,mirrorOf的值就寫成central,url的值配置為阿里云maven倉庫地址或者公司內網的maven倉庫地址。

2.4、profiles配置

profiles配置項用來配置我們常用的倉庫,而且可以對這些倉庫進行分類,在特定的條件下使特定類別的倉庫生效,當然也可以默認指定使用某些倉庫。

注意:官方更推薦在pom.xml文件中定義profiles

profiles的結構如下:

 <profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
       <repositories>
       </repositories>
      <pluginRepositories>
        <pluginRepository>
        </pluginRepository>
      </pluginRepositories>
    </profile>
    <profile>
      <id>test</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
       <repositories>
       </repositories>
      <pluginRepositories>
        <pluginRepository>
        </pluginRepository>
      </pluginRepositories>
    </profile>
 </profiles>

結點下面可以有多個結點,我們就是通過profile結點對倉庫進行分類。profile結點的子節(jié)點釋義如下:

  • • id,標識profile,單個文件中的profile的id值要保證唯一,后續(xù)靠這個值來激活對應的profile

  • • activation,自動激活相關的配置,其中它的子節(jié)點activeByDefault配置為true,則默認激活當前的profile

  • • repositories,倉庫列表配置

  • • pluginRepositories,插件倉庫列表配置

repositories和pluginRepositories這兩部分包含內容較多,我們分開來看

2.4.1、repositories配置

repositories用來配置各個倉庫的信息。之所以有這樣的設計,其中一個原因就是我們平時開發(fā)所需的jar包可能分散在不同的倉庫里,由于倉庫之間是獨立的,如果把所有的包都維護在一個倉庫,本身也會影響倉庫的性能,所以這時就需要結合多個倉庫來使用了。

repositories結構如下:

    <repositories>
        <repository>
          <id>dev</id>
          <name>開發(fā)倉庫</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </snapshots>
          <url>http://192.168.1.1/repository/dev</url>
        </repository>
   </repositories>

結點下面有多個repository結點,repository結點下面的子節(jié)點釋義如下:

  • • id,倉庫的id,需要全局唯一,也不能和mirror的id相同

  • • name,倉庫的名稱,隨便起,只是方便我們識別倉庫

  • • releases,發(fā)布版本的配置

  • • snapshots,快照版本的配置

  • • enabled,true或false,代表該倉庫對指定類型(releases或snapshots)的版本的jar包是否有效,b比如releases下面的enabled如果是true,那么下載發(fā)布版本的jar包就可以使用到該倉庫。

  • • updatePolicy,是指更新策略,alway代表每次下載jar包都從遠程倉庫下載并更新本地jar包;daliy是默認值,指每天下載jar包都會去遠程下載并更新一次本地的jar包。never指的是只要本地有jar包,就一直使用本地的。針對snapshots的配置,我們一般會設置為always

  • • url,倉庫的地址

2.4.2、pluginRepositories配置

pluginRepositories是指插件倉庫,用來管理我們使用到maven插件的倉庫。我們平時使用的jar包一般分兩種,一類就是這種jar包需要被別的項目依賴,另一種jar包就是maven自身使用到的jar包,也叫插件。maven官方針對這兩類jar包,就給出了pluginRepositories和repositories這兩類的配置。而repositories就配置我們項目開發(fā)常用的彼此之間存在依賴的jar包所在的倉庫。

pluginRepositories的結構如下:

   <pluginRepositories>
        <pluginRepository>
          <id>testPluginRepo</id>
          <name>測試插件倉庫</name>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <url>http://192.168.1.1/repository/testPlugin/</url>
        </pluginRepository>
    </pluginRepositories>

pluginRepositories結點下可以有多個pluginRepository結點,pluginRepository結點下的子節(jié)點的釋義和repository的一樣,此處就不再重復了。

2.5、activeProfiles配置

activeProfiles配置項用來指定哪些profile生效,它的結構如下:

<activeProfiles>
    <activeProfile>dev</activeProfile>
 </activeProfiles>

activeProfiles結點下面可以多個activeProfile結點,activeProfile對應的值就是profile的id。

 

關注深藍互聯(lián)公眾號
Copyright ? 2013-2025 深藍互聯(lián) 版權所有
友情鏈接: