Maven实战读书笔记(六):Maven灵活构建
Maven為了支持構建的靈活性,內置了3大特性,即:屬性、Profile和資源過濾。
6.1 Maven屬性
Maven的屬性與Java代碼的常量有異曲同工之妙,都是為了消除重復,對相關內容進行統一管理并且可以減少日后升級版本的工作量,降低錯誤發生的概率。
在POM文件中,可以通過${屬性名稱}的方式來引用屬性。
在Maven中,存在6類屬性,分別為:
1) 內置屬性,主要有兩個,分別為:${basedir}表示項目根目錄,即POM文件所在的目錄、${version}表示項目的版本。
2) POM屬性,用戶可以通過該類屬性引用POM文件中對應元素的值,如:
Remark:每一個POM屬性都對應到一個POM元素
3) 自定義屬性:用戶在POM文件的<properties>元素下定義的Maven屬性,如:
<properties><spring.boot.version>1.5.9.RELEASE</spring.boot.version> </properties>4) Settings屬性
與POM屬性同理,使用settings.開頭的屬性引用settings.xml文件中xml元素的值,如常用的${settings.localRepository}引用本地倉庫的地址。
5) Java系統屬性
所有java系統屬性都可以使用Maven屬性進行引用,如${user.home}指向用戶目錄,可以通過mvn help:system查看所有的java系統屬性。
6) 環境變量屬性
所有的環境變量可以使用env.開頭的Maven屬性進行引用,如${env.JAVA_HOME}指向了JAVA_HOME環境變量的值,可以通過mvn help:system查看所有的環境變量。
6.2 Maven屬性最佳實踐
6.2.1通過自定義屬性消除重復
基于Java平臺的開發,目前基本都會引進springframework幫我們簡化工作,需要MVC功能,則引入spring-webmvc,需要事務管理功能,引入spring-tx。在我們POM文件中引入相關依賴:
<dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.3.14.RELEASE</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.14.RELEASE</version> </dependency>當我們需要升級springframework的時候,需要修改多個地方,如果這些依賴不放在一起的時候,則容易造成漏更改,導致多版本并存,這個時候,可以使用自定義屬性,如:
<properties><springframework.version>4.3.14.RELEASE</springframework.version> </properties> <dependencies> <dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${springframework.version}</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${springframework.version}</version> </dependency> </dependencies>當需要進行版本升級的時候,只需要修改springframework.version屬性即可。
6.2.2使用POM屬性依賴內部模塊
在一個多項目中,模塊之間一般會有依賴,并且這些模塊通常會使用同一的groupId和version,這個時候可以使用POM屬性,如:
<dependencies><dependency><groupId>${project.groupId}</groupId><artifactId>demo-base</artifactId><version>${project.version}</version></dependency> </dependencies>這樣,當進行項目版本升級時,就不需要更改依賴模塊的版本了。
轉載于:https://www.cnblogs.com/Jxwz/p/8372381.html
總結
以上是生活随笔為你收集整理的Maven实战读书笔记(六):Maven灵活构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue笔记(五):Vuex
- 下一篇: Altera FPGA管脚弱上拉电阻详细