讀古今文學網 > Maven實戰 > 14.4.2 激活profile >

14.4.2 激活profile

為了盡可能方便用戶,Maven支持很多種激活Profile的方式。

1.命令行激活

用戶可以使用mvn命令行參數-P加上profile的id來激活profile,多個id之間以逗號分隔。例如,下面的命令激活了dev-x和dev-y兩個profile:

2.settings文件顯式激活

如果用戶希望某個profile默認一直處於激活狀態,就可以配置settings.xml文件的activeProfiles元素,表示其配置的profile對於所有項目都處於激活狀態,如代碼清單14-9所示。

代碼清單14-9 settings文件顯式激活profile

9.5節就曾經用到這種方式默認激活了一個關於倉庫配置的profile。

3.系統屬性激活

用戶可以配置當某系統屬性存在的時候,自動激活profile,如代碼清單14-10所示。

代碼清單14-10 某系統屬性存在時激活profile

可以進一步配置當某系統屬性test存在,且值等於x的時候激活profile,如代碼清單14-11所示。

代碼清單14-11 某系統屬性存在且值確定時激活profile

不要忘了,用戶可以在命令行聲明系統屬性。例如:

因此,這其實也是一種從命令行激活profile的方法,而且多個profile完全可以使用同一個系統屬性來激活。

4.操作系統環境激活

Profile還可以自動根據操作系統環境激活,如果構建在不同的操作系統有差異,用戶完全可以將這些差異寫進profile,然後配置它們自動基於操作系統環境激活,如代碼清單14-12所示。

代碼清單14-12 基於操作系統環境激活profile

這裡family的值包括Windows、UNIX和Mac等,而其他幾項name、arch、version,用戶可以通過查看環境中的系統屬性os.name、os.arch、os.version獲得。

5.文件存在與否激活

Maven能夠根據項目中某個文件存在與否來決定是否激活profile,如代碼清單14-13所示。

代碼清單14-13 基於文件存在與否激活profile

6.默認激活

用戶可以在定義profile的時候指定其默認激活,如代碼清單14-14所示。

代碼清單14-14 默認激活profile

使用activeByDefault元素用戶可以指定profile自動激活。不過需要注意的是,如果POM中有任何一個profile通過以上其他任意一種方式被激活了,所有的默認激活配置都會失效。

如果項目中有很多的profile,它們的激活方式各異,用戶怎麼知道哪些profile被激活了呢?maven-help-plugin提供了一個目標幫助用戶瞭解當前激活的profile:

maven-help-plugin還有另外一個目標用來列出當前所有的profile: