真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

pom.xml的配置和管理-創(chuàng)新互聯(lián)

1.pom.xml概念

POM是項目對象模型(Project Object Model)的簡稱,它是Maven項目中的文件,使用XML表示,名稱叫做pom.xml。作用類似ant的build.xml文件,功能更強大。該文件用于管理:源代碼、配置文件、開發(fā)者的信息和角色、問題追蹤系統(tǒng)、組織信息、項目授權(quán)、項目的url、項目的依賴關(guān)系等等。事實上,在Maven世界中,project可以什么都沒有,甚至沒有代碼,但是必須包含pom.xml文件。

在平泉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,平泉網(wǎng)站建設(shè)費用合理。

2.基本配置

(1)

是pom.xml的根元素,包含了一些約束信息.


(2)

4.0.0

pom的版本,這是Maven 2&3唯一支持的pom版本,而且不能忽略.

(3)Maven坐標(biāo)

,標(biāo)識了倉庫中的一個特定位置,叫項目坐標(biāo).三個屬性告訴了Maven項目中的一個特定版本,讓Maven知道如何處理它們以及在生命周期內(nèi)的哪一階段需要它們.

A.

表示項目所屬的組,通常是一個公司或者組織的名稱,如org.springframework.

B.

表示項目的唯一標(biāo)識.

C.

表示項目的版本號,通常來說項目的版本號分成三段:
主版本號.次版本號.修訂版本號

  • 主版本號:代表架構(gòu)變動或者不兼容的實現(xiàn).
  • 次版本號:兼容性修改,功能增強.
  • 修訂版本號:bug修復(fù).

版本號的后綴意味著項目的不同階段:

  • SNAPSHOT:開發(fā)中的版本
  • RELEASE:正式發(fā)布版
  • M1,M2:M指里程碑,表示即將發(fā)布
  • RC:Release Candidate,發(fā)布候選
  • GA:General Availablity,基本可用版本

(4)

打包類型,沒有提供的話默認(rèn)值為jar,常見的有jar與war,也可以取值:

  • maven-plugin
  • pom
  • ejb
  • ear
  • rar

(5)POM 關(guān)系

Maven的一個強大之處是處理項目關(guān)系的方式,可以通過一個公共的本地倉庫去解決問題.

A.依賴

POM的基礎(chǔ)就是依賴列表,Maven下載與在編譯時鏈接依賴與其他所需要的目標(biāo),而且可以處理傳遞性依賴,使列表可以專注于項目所需的依賴.依賴放在里面,包含若干個.


   
     ....
   
   
     ....
   

一個通常包含:

a.

對應(yīng)項目坐標(biāo)

b.

版本

c.

可用于配置不同jdk的,比如讓一個同時支持jdk8與jdk11,可以選擇使用哪一個,方便在不同jdk中使用.

d.

對應(yīng)的依賴類型,默認(rèn)為jar,通常對應(yīng)與.

e.

scope表示類庫與項目的關(guān)系,可以取以下5個值:

  • compile:默認(rèn)值,編譯依賴使其在所有類路徑中可用,而且這些依賴項會傳遞到其他依賴項目,在編譯和打包時都需要此類庫.
  • provided:類似compile,但是期望JDK或一個容器會在運行時提供,僅在編譯和測試類路徑上可用,不可傳遞.
  • runtime:在運行時與測試類路徑中可用,在編譯類路徑中不可用.
  • test:測試編譯與執(zhí)行階段可用,不可傳遞.
  • system:類似于provided,但必須顯式提供jar包.
f.

當(dāng)為system才需要這個,否則(當(dāng)不為system時)會構(gòu)建失敗.路徑必須為絕對路徑.

g.

標(biāo)記依賴的可選狀態(tài).

h.

排除不需要的依賴,包含子元素,每個都包含.

B.繼承

使用指定需要繼承的pom.


   org.springframework.boot
   spring-boot-starter-parent
   2.2.1.RELEASE

子pom會繼承父pom的,,等眾多屬性,具體包括:

  • groupId
  • version
  • description
  • url
  • inceptionYear
  • organization
  • licenses
  • developers
  • contributors
  • mailingLists
  • scm
  • issueManagement
  • ciManagement
  • properties
  • dependencyManagement
  • dependencies
  • repositories
  • pluginRepositories
  • build
  • reporting
  • profiles

但不能繼承:

  • artifactId
  • name
  • prerequisites

另外,就像java中所有類都繼承于java.lang.Object一樣,所有POM都有一個"Super POM",pom都從它繼承而來,下面是Maven3.5.4的"Super pom":


  4.0.0

  
   
    central
    Central Repository
    https://repo.maven.apache.org/maven2
    default
    
     false
    
   
  

  
   
    central
    Central Repository
    https://repo.maven.apache.org/maven2
    default
    
     false
    
    
     never
    
   
  

  
   ${project.basedir}/target
   ${project.build.directory}/classes
   ${project.artifactId}-${project.version}
   ${project.build.directory}/test-classes
   ${project.basedir}/src/main/java
   ${project.basedir}/src/main/scripts
   ${project.basedir}/src/test/java
   
    
     ${project.basedir}/src/main/resources
    
   
   
    
     ${project.basedir}/src/test/resources
    
   
   
    
    
    
     
      maven-antrun-plugin
      1.3
     
     
      maven-assembly-plugin
      2.2-beta-5
     
     
      maven-dependency-plugin
      2.8
     
     
      maven-release-plugin
      2.5.3
     
    
   
  

  
   ${project.build.directory}/site
  

  
   
   
    release-profile

    
     
      performRelease
      true
     
    

    
     
      
       true
       maven-source-plugin
       
        
         attach-sources
         
          jar-no-fork
         
        
       
      
      
       true
       maven-javadoc-plugin
       
        
         attach-javadocs
         
          jar
         
        
       
      
      
       true
       maven-deploy-plugin
       
        true
       
      
     
    
   
  

C.聚合(或多模塊)

模塊是pom列出的項目,并作為一個組執(zhí)行,每個模塊通過pom文件或項目的相對路徑進(jìn)行列出.


   my-project
   another-project
   third-project/pom-example.xml

不需要考慮模塊間的依賴關(guān)系,Maven會對其進(jìn)行拓?fù)渑判蛞员阍谝蕾嚹K之前構(gòu)建依賴關(guān)系.

(6)屬性

屬性是Maven中的值占位符,像Ant一樣,可以以

${x}

這樣的形式在pom.xml的任何位置訪問一個值,也可以被用作默認(rèn)值使用.
有5種形式使用值:

①env.x

env會使用當(dāng)前shell的環(huán)境變量的值.
例如

${env.PATH}

②project.x

下的x元素的值,如

${project.version}

③settings.x

使用settings.xml中的元素的值

${settings.offline}

④java.x

java系統(tǒng)屬性值,通過java.lang.System.getProperties()獲取,如

${java.home}

⑤x

直接使用x,用的是下的屬性,比如


   AAAAA
${aaa}

3.構(gòu)建配置

,聲明項目結(jié)構(gòu),管理插件等.

(1)BaseBuild元素

A.

目標(biāo)的默認(rèn)值,可以取值install,copile

B.

構(gòu)建產(chǎn)生的文件存放目錄

C.

構(gòu)建最終產(chǎn)生的項目名字,但有可能會被更改.

D.

定義一組,內(nèi)是.properties文件,項目中的占位符如xxx.xxx會被.properties中的xxx=xxx的具體值替換掉.

(2)資源

,項目相關(guān)的資源文件的位置.

A.

描述每個資源的根元素.

B.

構(gòu)建資源的位置,對于jar包放在META-INF里面.

C.

取值true或false,表示是否開啟過濾

D.

資源位置.

E.

指定要包含的資源,使用*作為通配符.

F.

與include相反,要排除的資源列表.

(3)插件

下包含了若干個,表示插件,每個有以下元素:

A.

與上面的一樣.

B.

與上面的一樣.

C.

取值true或false,表示是否加載擴展,默認(rèn)為false.

D.

取值ture或false,是否應(yīng)用pom的繼承關(guān)系,默認(rèn)true.

E.

插件項的相關(guān)配置,可以配置,,等.

F.

引入插件的依賴,與前面的類似.

G.

插件可能有多個目標(biāo),配置每一個作為插件的目標(biāo),在中,用指定執(zhí)行目標(biāo)的標(biāo)識符,用指定目標(biāo),包含一組,用于指定階段,用于指定是否啟用繼承關(guān)系.另外也可以包含,與上面類似,用于配置特定的目標(biāo),而不是插件的所有目標(biāo).

(4)插件管理

,包含一組,繼承于此項目的子項目都可以使用,子項目可以覆蓋修改.

(5)目錄

可以為pom設(shè)置各種目錄,比如

A.項目源碼目錄

構(gòu)建項目時會編譯該目錄的源碼,是相對于pom.xml的相對路徑.

B.測試源碼目錄

測試時會編譯其中的源碼,也是相對于pom.xml的相對路徑.

C.class目錄

這里存放被編譯過的class文件.

D.測試class

存放測試文件編譯后的class文件.

(6)擴展

,將包含在運行中的構(gòu)建的類路徑中,在構(gòu)建過程中可以激活擴展.比如可以為,例如這是支持ftp的wagon-ftp插件:


   
     
       org.apache.maven.wagon
       wagon-ftp
       3.3.4
     
   

(7)報表

,描述產(chǎn)生報表的規(guī)范等,執(zhí)行"mvn site"時報表就會運行.

A.

是否包含默認(rèn)報表.

B.

報表存放位置.

C.

報表包含的插件以及配置.

D.

包含一組,與類似,配置多個目標(biāo),每個包含,,,以及,指定報表集合的標(biāo)識符,表示使用的報表配置,表示是否繼承到子pom,包含一組,表示使用哪些報表.

4.項目信息

(1)許可證

,包含一組,每個包含,,,.

A.

名稱.

B.

官方license頁面的url.

C.

項目分發(fā)的方式,可以選擇

  • repo:從Maven倉庫下載.
  • manual:手動安裝.

D.

一些補充信息.

(2)組織

,包含,,與的類似.

(3)開發(fā)者

,包含一組,每個包含:

A.

開發(fā)者id.

B.

姓名.

C.

郵箱.

D.

主頁url.

E.

所屬組織.

F.

所屬組織的主頁url.

G.

角色,包含一組,一個描述一個角色.

H.

時區(qū),可以以America/New_York或Europe/Berlin這樣的形式,或者設(shè)置一個整數(shù),范圍[-11,12].

I.

開發(fā)者屬性,如如何處理即時消息等.

(4)貢獻(xiàn)者

,包含一組,類似于,包含,等元素.

5.環(huán)境配置

(1)問題管理

,定義缺陷跟蹤系統(tǒng),如Bugzilla,TestTrack,ClearQuest等,包含元素,指定系統(tǒng)名字,指定問題管理系統(tǒng)的url.

(2)持續(xù)集成管理

,使用了觸發(fā)器,包含了:

A.

持續(xù)集成系統(tǒng)的名稱.

B.

持續(xù)集成系統(tǒng)的url.

C.

包含一組,用來配置觸發(fā)器,每個包含:

a.

如何發(fā)送通知,比如可以取值mail.

b.

取值true/false,錯誤時發(fā)送.

c.

取值true/false,失敗時發(fā)送.

d.

取值true/false,成功時發(fā)送.

e.

取值true/false,發(fā)生警告時發(fā)送.

f.

相關(guān)配置,例如可以添加

,發(fā)送的地址.

(3)郵件列表

,包含一組,表示郵件信息,包括:

A.

郵件名稱.

B.

訂閱郵件地址或鏈接.

C.

取消訂閱郵件或鏈接.

D.

要發(fā)送的郵件地址.

E.

查看舊的郵件的url.

(4)軟件配置管理(SCM)

,也叫Source Code/Control Management,允許配置代碼庫供web站點和其他插件使用.包含:

A.

描述如何通過Maven連接到版本控制系統(tǒng),其中connection需要讀權(quán)限,developConnection需要寫權(quán)限.

B.

代碼標(biāo)簽,默認(rèn)為HEAD.

C.

公開的可瀏覽的倉庫,例如ViewVC或Fisheye.

(5)前提條件

,這是Maven2中的元素,只有一個子元素,指定maven的版本,且規(guī)定是2.x版本.Maven3中不需要了,可以用:


   
     
       org.apache.maven.plugins
       maven-enforcer-plugin
       3.0.0-M3
       
         
         enforce-maven
         
           enforce
         
         
         
           
             3.0
           
            
       
     
    
   
  

代替.

(6)倉庫

,包含一組,表示倉庫的位置,每個包含:

A.

如何處理遠(yuǎn)征倉庫的發(fā)布版本,包含:


  • true/false,是否啟用.

  • 更新頻率,Maven將本地pom的時間戳與遠(yuǎn)程進(jìn)行比較,可以選擇:always,daily(默認(rèn)),interval:X(X是一個整數(shù),表示X分鐘),never.

  • 校驗錯誤或校驗失敗時的策略,可以選擇ignore,fail或warn.

B.

如何處理遠(yuǎn)程倉庫的快照版本,包含的元素與一樣.

C.

遠(yuǎn)程倉庫的標(biāo)識符.

D.

遠(yuǎn)程倉庫的名稱.

E.

遠(yuǎn)程倉庫的url.

F.

倉庫布局類型,可以是default或legacy,Maven2.x為倉庫提供了默認(rèn)布局.

(7)插件倉庫

,插件的遠(yuǎn)程倉庫列表,包含一組,與中的類似.

(8)分發(fā)管理

,管理整個構(gòu)建過程中的分發(fā),可以把網(wǎng)站部署到遠(yuǎn)程服務(wù)器或者把構(gòu)件部署到遠(yuǎn)程倉庫.包含:

A.倉庫

,倉庫信息,包含:

  • :唯一版本,取值true/false,表示是否生成一個唯一版本號或是使用部分地址作為版本號.
  • :倉庫名字.
  • :倉庫id.
  • :指定倉庫位置.
  • :布局,取值default或legacy.

還有一個叫的元素,與類似,表示快照倉庫.

B.站點部署

,定義了如何部署項目的站點與文檔.包含:

  • :站點名稱.
  • :站點id.
  • :站點url.

C.重定位

,表示項目的新位置.包含:

  • :新的.
  • :新的.
  • :新版本.
  • :提示信息.

(9)配置文件

,包含一組,每個可以定義不同的配置,包含的元素有:

  • :配置文件的id,比如測試的可以叫test.
  • :相關(guān)構(gòu)建信息.
  • :模塊信息.
  • :遠(yuǎn)程倉庫信息.
  • :插件倉庫信息.
  • :依賴信息.
  • :報表信息.
  • :依賴管理信息.
  • :分發(fā)管理
  • :activation是profile的關(guān)鍵,profile的強大之處是某些情況下才可以修改基本pom,這些情況通過activation指定.

包含以下元素:

A.

是否默認(rèn)激活,true或false.

B.

指定jdk版本.

C.

可以定義一些特定的操作系統(tǒng)屬性,例如,,,.

D.

若Maven檢測到該屬性就會激活該屬性所在的配置文件,可以指定.

E.

兩個子元素,表示若存在元素中對應(yīng)的文件,則激活此配置文件.表示若不存在元素中對應(yīng)的文件,則激活此配置文件.

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


名稱欄目:pom.xml的配置和管理-創(chuàng)新互聯(lián)
本文鏈接:http://weahome.cn/article/jcsoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部