Profile

幫助命令

  • 查看項目中哪些profile被激活了
mvn help:active-profiles
  • 列出當前所有profile
mvn help:all-profiles

maven屬性

  • maven有6類屬性,都可以直接在pom中使用务甥,和profile沒有關(guān)系供常,profile是為了靈活構(gòu)建而產(chǎn)生的楔脯,也就是說通過profile為屬性設置不同的值呵扛,并設置profile啟用開關(guān)沥阳,當某個profile啟用后踏幻,該profile中配置的屬性或者插件信息都會在當前項目中起作用谱醇。
  • 下面是講解profile種類和如何開啟漱牵。想知道6類屬性可以查看maven靈活構(gòu)建夺蛇。

profile種類

  • 根據(jù)需求profile可以在以下位置中聲明。在不同位置聲明的profile中可以使用屬性元素種類不一樣酣胀。
    • pom.xml :當前項目生效
    • 用戶settings.xml :用戶目錄 .m2/settings.xml,當前機器下該用戶的所有項目有效
    • 全局settings.xml :conf/settings.xml當前機器上所有項目

開啟資源過濾

資源文件過濾

  • 使用插件maven-resources-plugin
  • 對src/main/resources目錄下文件開啟過濾
<build>
     <resources>
            <resource>
                <directory>{project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
    <!-- 對sql資源文件關(guān)閉資源過濾-->
         <resource>
                <directory>{project.basedir}/src/main/sql</directory> 
                <filtering>false</filtering>
            </resource>
    </resources>
...
   <plugins>
        <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>${maven-resources-plugin.version}</version>
                <configuration>
                    <encoding>${project.encoding}</encoding>
                </configuration>
            </plugin>
    </plugins>
</build>

web資源文件過濾

  • 插件maven-war-plgin

激活profile6種方式

  • 定義在settings中的profile對所有項目有效刁赦,在pom中的只對當前項目有效
 <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
       <profile>
            <id>test</id>
            <properties>
                <profiles.active>test</profiles.active>
            </properties>
        </profile>
 <!--通過系統(tǒng)屬性激活娶聘,當系統(tǒng)中存在某個屬性或?qū)傩缘扔谀硞€值時激活-->
        <profile>
            <id>prod</id>
           <activation>
                <property>
                    <name>server</name>
                    <value>x</value>
                </property>
            </activation>
            <properties>
                <profiles.active>prod</profiles.active>
            </properties>
        </profile>
      <profile>
            <id>jdk1.6</id>
            <activation>
                <property>
                    <name>jdk1.6</name>
                </property>
            </activation>
            <properties>
                <java.version>1.6</java.version>
            </properties>
        </profile>
    </profiles>
    1. 命令行
      mvn -Pdev,test //激活dev、test profile
    1. 系統(tǒng)屬性激活
    • 如果系統(tǒng)屬性不存在可以通過mvn設置系統(tǒng)屬性甚脉。(不是環(huán)境變量)
      mvn -Djdk1.6 -Dserver=x //激活prod丸升、jdk1.6 profile
    • javap -v class類 可以查看編譯后class文件的使用的jdk版本,本例中對應50
    • mvn help:system 查看系統(tǒng)屬性和環(huán)境變量
    1. settings文件顯示激活
    • 表示其配置的profile對所有的項目都處于激活狀態(tài)宦焦。
  <profiles>
    <profile>
     .....
    <id>artifactory</id>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
    1. 操作系統(tǒng)環(huán)境激活
    1. 文件存在與否激活
<profiles>
        <profile>
            <id>dev</id>
            <activation>
             <file>
                   <missing>x.properties</missing>
                   <exists>y.properties</exists>
             </file>
            </activation>
            <properties>
                .....
            </properties>
        </profile>
<profiles>
    1. 默認激活
<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profiles.active>dev</profiles.active>
            </properties>
        </profile>
<profiles>
  • 注:Pom中如果有任何 一個profile通過非“默認激活”方式激活了发钝,那么所有默認激活的profile配置都會失效。

案例

  • 需求:項目中除了使用中央倉庫的依賴還會用到公司私服上的依賴波闹。想法:中央倉庫依賴配置到阿里下載酝豪,公司的依賴配置到公司私服上下載。
  • 設計:在settings.xml中配置阿里鏡像代理中央倉庫的依賴精堕。配置profile來滿足公司自己依賴的下載孵淘。
<settings>
<mirrors>
     <!-- 代理central遠程倉庫 -->
     <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror> 
  </mirrors>

  <profiles>
     <profile>
      <repositories>
        <repository>
            <id> maven2 repository snapshots</id>
            <name> maven2 repository-snapshots</name>
            <url>公司私服地址</url>
        </repository>
        <repository>
            <id> maven2 repository releases</id>
            <name>maven2 repository-releases</name>
            <url>公司私服地址</url>
        </repository>
     
      </repositories>
      <pluginRepositories>
       
        <pluginRepository>
          <id> maven2 plugin repository releases</id>
          <name> maven2 repository-releases</name>
          <url>公司私服地址</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>

  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>

</settings>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市歹篓,隨后出現(xiàn)的幾起案子瘫证,更是在濱河造成了極大的恐慌,老刑警劉巖庄撮,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件背捌,死亡現(xiàn)場離奇詭異,居然都是意外死亡洞斯,警方通過查閱死者的電腦和手機毡庆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烙如,“玉大人么抗,你說我怎么就攤上這事⊙翘” “怎么了蝇刀?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長徘溢。 經(jīng)常有香客問我吞琐,道長,這世上最難降的妖魔是什么然爆? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任顽分,我火速辦了婚禮,結(jié)果婚禮上施蜜,老公的妹妹穿的比我還像新娘。我一直安慰自己雌隅,他們只是感情好翻默,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布缸沃。 她就那樣靜靜地躺著,像睡著了一般修械。 火紅的嫁衣襯著肌膚如雪趾牧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天肯污,我揣著相機與錄音翘单,去河邊找鬼。 笑死蹦渣,一個胖子當著我的面吹牛哄芜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柬唯,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼认臊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锄奢?” 一聲冷哼從身側(cè)響起失晴,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拘央,沒想到半個月后涂屁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡灰伟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年拆又,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袱箱。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡遏乔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出发笔,到底是詐尸還是另有隱情盟萨,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布了讨,位于F島的核電站捻激,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏前计。R本人自食惡果不足惜胞谭,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望男杈。 院中可真熱鬧丈屹,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至先蒋,卻和暖如春骇钦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背竞漾。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工眯搭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人业岁。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓鳞仙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叨襟。 傳聞我的和親對象是個殘疾皇子繁扎,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)糊闽,斷路器梳玫,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • 當前念链,JVM生態(tài)圈主要的三大構(gòu)建工具: Apache Ant(帶著Ivy) Maven Gradle 對于剛開始接...
    清楓_小天閱讀 5,781評論 1 13
  • 前言什么是 POMQuick Overview POM 常用元素 pom.xml 完整注釋 參考 0 前言 什么是...
    seyvoue閱讀 12,581評論 1 36
  • 文|在昔 黃昏盼忌,霞光在西邊的天空聚攏,色彩斑斕掂墓,整座城市在夕陽的余暉下褶褶生光谦纱,顯現(xiàn)出一派祥和的氣息。此時君编,熱浪有...
    在昔閱讀 473評論 0 3