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

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

Mavenpom.xml元素配置說明(一)-創(chuàng)新互聯(lián)

部分來源:Mavenpom.xml元素配置
說明(一)
  1. Maven中 dependencies 節(jié)點和 dependencyManagement 節(jié)點的區(qū)別
  2. dependencies與dependencyManagement的區(qū)別
  3. maven profile的使用

properties

假如一種場景:比如說spring的jar包版本,由于jar包較多,如果要修改,需要挨個修改,工作量巨大,因此可以使用 標簽,賦值之后,可以統(tǒng)一使用,統(tǒng)一修改。

嘉祥網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),嘉祥網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為嘉祥上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的嘉祥做網(wǎng)站的公司定做!

    org.springframework
    spring-tx
    4.3.5

轉(zhuǎn)變?yōu)?/p>


 UTF-8
 4.3.5


    org.springframework
    spring-tx
    ${spring.version}

dependencyManagement 與 dependencies

dependencies即使在子項目中不寫該依賴項,那么子項目仍然會從父項目中繼承該依賴項(全部繼承)

dependencyManagement里只是聲明依賴,并不實現(xiàn)引入,因此子項目需要顯示的聲明需要用的依賴。如果不在子項目中聲明依賴,是不會從父項目中繼承下來的;只有在子項目中寫了該依賴項,并且沒有指定具體版本,才會從父項目中繼承該項,并且version和scope都讀取自父pom;另外如果子項目中指定了版本號,那么會使用子項目中指定的jar版本。

Itoo-base(pom.xml) 繼承于 Itoo-base-parent(pom.xml)
示例如下:
Itoo-base-parent(pom.xml)

  
      
          
            org.eclipse.persistence  
            org.eclipse.persistence.jpa  
            ${org.eclipse.persistence.jpa.version}  
            provided  
          
          
          
            javax  
            javaee-api  
            ${javaee-api.version}  
          
      
  

Itoo-base(pom.xml)

  
  
    itoo-base-parent  
    com.tgb  

    0.0.1-SNAPSHOT  
    ../itoo-base-parent/pom.xml  
  
4.0.0  
itoo-base  
ejb  
      
  
  
	  
        javax  
        javaee-api  
      
      
      
        com.fasterxml.jackson.core  
        jackson-annotations  
      
      
      
        org.eclipse.persistence  
        org.eclipse.persistence.jpa  
        provided  
      
  

請注意:
子類中沒有指明依賴項的版本信息,在頂層 pom 中的 dependencyManagement 中javaee-api表明其優(yōu)選的版本是 ${javaee-api.version} ,版本信息會注入其中。
只有當 外層的dependencies 元素中沒有指明版本信息時, dependencyManagement 中的 dependencies 元素才起作用。

這樣做的好處:
統(tǒng)一管理項目的版本號,確保應(yīng)用的各個項目的依賴和版本一致,才能保證測試的和發(fā)布的是相同的成果,因此,在頂層pom中定義共同的依賴關(guān)系。同時可以避免在每個使用的子項目中都聲明一個版本號,這樣想升級或者切換到另一個版本時,只需要在父類容器里更新,不需要任何一個子項目的修改;如果某個子項目需要另外一個版本號時,只需要在dependencies中聲明一個版本號即可。子類就會使用子類聲明的版本號,不繼承于父類版本號。

頂層 pom 中的 dependencies 與 dependencyManagement 中的 dependencies 元素有一個重要的區(qū)別:
dependencyManagement 中的 dependencies 元素只表明依賴項版本的優(yōu)先選擇,并不影響項目的依賴項;而 dependencies 元素則影響項目的依賴項。

Profile

使用maven來實現(xiàn)多環(huán)境的構(gòu)建可移植性,需要借助maven提供的profile功能,通過不同的環(huán)境激活不同的profile來達到構(gòu)建的可移植性。

一、POM中profile的配置
首先是profile配置,在pom.xml中添加如下profile的配置:


	
		dev
		
			dev
		
		
			true
		
	
	
		test
		
			test
		
	

這里定義了三個環(huán)境,dev(開發(fā)環(huán)境)、test(測試環(huán)境),其中開發(fā)環(huán)境是默認激活的(activeByDefault為true),這樣如果在不指定profile時默認是開發(fā)環(huán)境。

同時每個profile還定義了兩個屬性,其中profiles.active表示被激活的profile的配置文件的目錄。

二、工程目錄
針對不同的環(huán)境,我們定義不同的配置文件,而這些配置文件都做為資源文件放到maven工程的文件目錄下(已將src/main/resources改為config),即config目錄下,且各個環(huán)境的配置分別放到相應(yīng)的目錄下,而所有環(huán)境都公用的配置,直接放到config目錄下即可。目錄結(jié)構(gòu)如下所示:

src/main/resources  
	spring.xml  
	spring-mvc.xml  
	properties  
		dev  
			dev.properties  
		test  
			test.properties  

如上所示,開發(fā)環(huán)境、測試環(huán)境的配置文件分別放到config目錄下的dev、test三個子目錄中,剩余公共的配置文件放于config目錄下。
三、POM文件中build配置
在pom中的build節(jié)點下,配置資源文件的位置,如下所示:


	
		config
		
			properties/dev/*
			properties/test/*
		
	
	
		config/properties/${profiles.active}
	

首先第一個資源文件位置config需要排隊提各個環(huán)境的配置文件,各個環(huán)境的配置我們在第三個節(jié)點中通過前面在profile中配置的profiles.active屬性來指定。即config/properties/${profiles.active}。這樣在激活指定的profile時,會加載指定目錄下的配置文件,如當前激活的是dev profile,那么這個資源目錄就是config/properties/dev。這樣就達到了不同環(huán)境加載不同配置的目的。
四、項目編譯生成
所有需要的配置就完成了,通過在運行maven命令時指定不同的profile即可構(gòu)建不同環(huán)境需要的war包或發(fā)布到不同的環(huán)境了 。如:

mvn clean package -Ptest 即構(gòu)建出生產(chǎn)環(huán)境需要的war包

war包解壓后,文件結(jié)構(gòu)如下:

WEB-INF
	classes
		spring.xml
		spring-mvc.xml
		test.properties

由于默認的profile是dev,所以如果我們不指定profile,那么加載就是開發(fā)環(huán)境dev下的配置文件了。即我們在本地開發(fā)測試時,不用關(guān)心profile的問題。


新聞名稱:Mavenpom.xml元素配置說明(一)-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/dsesgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部