<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              maven(三)最詳細的profile的使用

              來源:CSDN 時間:2023-03-27 11:01:40

              文章目錄

              前言1. 原理2. 應用演示2.1 項目結構2.2 激活方式1. 通過maven命令參數2. 通過pom文件里的activation屬性3. settings.xml中使用activeProfiles指定(了解即可)


              (相關資料圖)

              前言

              在開發過程中,我們的項目會存在不同的運行環境,比如開發環境、測試環境、生產環境,而我們的項目在不同的環境中,有的配置可能會不一樣,比如數據源配置、日志文件配置、以及一些軟件運行過程中的基本配置,那每次我們將軟件部署到不同的環境時,都需要修改相應的配置文件,這樣來回修改,很容易出錯,而且浪費勞動力。        在前面的文章profile之springboot,springboot為我們提供了一種解決方案,而maven也提供了一種更加靈活的解決方案,就是profile功能。

              1. 原理

              1.1 先看一段pom文件中的profile定義

              devdevprodprodtruetesttest

              可以看到定義了多個profile,每個profile都有唯一的id,也包含properties屬性。這里為每個profile都定義一個名為profiles.active的properties,每個環境的值不同。當我們打包項目時,激活不同的環境,profiles.active字段就會被賦予不同的值。 1.2 結合resource屬性        這個profiles.active字段可以應用到許多地方,及其靈活??梢栽谂渲梦募锉灰茫▍⒖即瞬┛停?;也可以結合pom文件里的resource和filter屬性,作為文件名的一部分或者文件夾名的一部分,下面會詳細講解這個用法。

              注意:maven的profile用法有許多種,但基本原理就是根據激活環境的不同,自定義字段被賦予不同的值。

              2. 應用演示

              2.1 項目結構

              這里定義了dev,prod,test三個文件夾,用來演示maven中profile的使用。注意,每個文件夾里還定義了application-{xxx}.properties件,這里相當于結合springboot的Profile的使用,是我比較推薦的方式,和本文maven的profile使用無關系,在application.properties都有spring.profiles.active=xxx去加載對應的application-{xxx}.properties。

              pom文件里的關鍵配置為

              org.springframework.bootspring-boot-maven-pluginrepackagetruesrc/main/resources/dev/*prod/*test/*                    messages/*-->src/main/resources/${profiles.active}devdevprodprodtruetesttest

              可以看到我們利用resource屬性來配置打包時,根據激活的環境來選取要打包的文件夾。我們使用maven命令

              mvn clean package

              prod環境被默認激活,打包后的包結構為 可以看到prod文件夾下的配置文件被打包進去,通過激活不同的profile也就實現了動態切換配置文件。

              2.2 激活方式

              profile的激活方式有很多種

              1. 通過maven命令參數

              即在使用maven打包時通過-P參數,-P后跟上profile的唯一id,如

              mvn clean package -Ptest

              打包時test的profile被激活,打包后的包結構為:

              2. 通過pom文件里的activation屬性

              prodprodtrue                1.5[1.5,)Windows XPWindowsx865.1.2600envtesttarget/generated-sources/axistools/wsdl2java/                        com/companyname/group

              這里我寫了多種方式,可以通過activeByDefault、jdk版本、操作系統、系統環境變量(在win10我試了不成功,win7可以,不知道為啥)、文件的存在或缺失,實際項目可以根據需要選取一種即可。這種的優先級低于maven命令參數指定的方式。

              3. settings.xml中使用activeProfiles指定(了解即可)

              即mave目錄下的settings.xml也可以添加下面的代碼來指定激活哪個profile。

              profileTest1

              值得注意的是1. setting.xml在當前系統用戶的.m2文件夾有(如沒有可手動拷貝過去也會生效),針對的當前用戶的profile配置,在maven的安裝目錄下“conf/settings.xml”,針對的是全局的profile配置。2.profile也可以定義在setting.xml文件中,但是這種方式個人感覺并不實用的,不推薦。

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦
              Top 中文字幕在线观看亚洲日韩