中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行mavenprofile動態選擇配置文件

發布時間:2021-10-13 16:21:49 來源:億速云 閱讀:124 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關如何進行mavenprofile動態選擇配置文件,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

一、背景

在開發過程中,我們的軟件會面對不同的運行環境,比如開發環境、測試環境、生產環境,而我們的軟件在不同的環境中,有的配置可能會不一樣,比如數據源配置、日志文件配置、以及一些軟件運行過程中的基本配置,那每次我們將軟件部署到不同的環境時,都需要修改相應的配置文件,這樣來回修改,很容易出錯,而且浪費勞動力。

maven提供了一種方便的解決這種問題的方案,就是profile功能。

二、profile簡介

profile可以讓我們定義一系列的配置信息,然后指定其激活條件。這樣我們就可以定義多個profile,然后每個profile對應不同的激活條件和配置信息,從而達到不同環境使用不同配置信息的效果。

profile定義的位置

(1)針對于特定項目的profile配置我們可以定義在該項目的pom.xml中。(下面舉例是這種方式)

(2) 針對于特定用戶的profile配置,我們可以在用戶的settings.xml文件中定義profile。該文件在用戶家目錄下的“.m2”目錄下。

(3)全局的profile配置。全局的profile是定義在Maven安裝目錄下的“conf/settings.xml”文件中的。

三、配置動態打包

1、配置profile

在項目的profile中添加如下的profile配置:

<profiles>  <profile>    <!-- 本地開發環境 -->    <id>dev</id>    <properties>      <profiles.active>dev</profiles.active>    </properties>    <activation>      <!-- 設置默認激活這個配置 -->      <activeByDefault>true</activeByDefault>    </activation>  </profile>  <profile>    <!-- 發布環境 -->    <id>release</id>    <properties>      <profiles.active>release</profiles.active>    </properties>  </profile>  <profile>    <!-- 測試環境 -->    <id>beta</id>    <properties>      <profiles.active>beta</profiles.active>    </properties>  </profile></profiles>

這里定義了三個環境,分別是dev(開發環境)、beta(測試環境)、release(發布環境),其中開發環境是默認激活的(activeByDefault為true),這樣如果在不指定profile時默認是開發環境,也在package的時候顯示指定你要選擇哪個開發環境,詳情見后面。

2、配置文件

針對不同的環境,我們定義了不同的配置文件,文件目錄如下:

如圖所示,開發環境、測試環境、生產環境的配置文件分別放到src/main/resources目錄下的config文件夾下。

config下有多個環境的配置文件,命名規則為是application-環境名稱.properties。

處理過程:

1)通過profile選中你要使用的環境

2)通過package命令,將環境變量注入到application.properties中(這樣子,那些公用的環境變量就不用在各個環境的配置文件中配置了)

3)項目中加載application.xml文件

加載配置文件

<context:property-placeholder location="classpath:application.properties"/>

例子:

application-beta.properties文件有如下部分內容:

env.datasource.jdbcUrl=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&autoReconnect=true&zeroDateTimeBehavior=roundenv.datasource.username=rootenv.datasource.password=12233

application.properties有部分如下內容用于注入上面的內容:

datasource.jdbcUrl=${env.datasource.jdbcUrl}datasource.username=${env.datasource.username}datasource.password=${env.datasource.password}

3、maven資源插件配置

在pom.xml的build結點下,配置資源文件的位置,如下所示:

<build>    <finalName>seewo-admin</finalName>    <!-- 定義了變量配置文件的地址 -->    <filters>      <filter>src/main/resources/config/application-${env}.properties</filter>    </filters>    <resources>      <resource>        <directory>src/main/resources</directory>        <filtering>true</filtering>      </resource>    </resources>    <plugins>      <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-war-plugin</artifactId>      </plugin>    </plugins>  </build>

這里注意一個參數<filtering>true</filtering>,一定要設置成true.這樣才會用對應env目錄下的配置文件覆蓋原來的。

4、激活profile

1)默認的激活

上面的profile配置中設置的默認的激活環境。如下面所示

<activeByDefault>true</activeByDefault>

2)使用-P參數顯示激活一個profile

當我們在進行Maven操作時就可以使用-P參數顯示的指定當前激活的是哪一個profile了。比如我們需要在對項目進行打包的時候使用id為dev的profile,我們就可以這樣做:

mvn package –Pdev

這里假設dev是在settings.xml中使用dev標記的處于激活狀態的profile,那么當我們使用“-P !profile”的時候就表示在當前操作中該profile將不處于激活狀態。

5、調用

private Logger logger = LogManager.getLogger(MyApp.class.getName());

其他的使用和log4j的是一樣的。

四、遇到的坑

在application.xml文件中不能出現@關鍵字,就算你注釋了也不行。當出現@了,之后的所有環境變量將不會被注入

以上就是如何進行mavenprofile動態選擇配置文件,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弥渡县| 江孜县| 武安市| 屏山县| 霍城县| 澎湖县| 夏邑县| 河间市| 岚皋县| 旌德县| 通海县| 陈巴尔虎旗| 绥化市| 米易县| 铜川市| 兴城市| 莱州市| 武宣县| 兴业县| 大理市| 双桥区| 萨迦县| 阳信县| 将乐县| 万全县| 张家口市| 永和县| 娱乐| 南华县| 远安县| 呼和浩特市| 阜平县| 武威市| 淮南市| 大港区| 龙陵县| 富锦市| 宾川县| 江阴市| 壤塘县| 广河县|