1. 程式人生 > >Springboot Maven 多環境打包以及聚合打包(一)

Springboot Maven 多環境打包以及聚合打包(一)

說明

開發中碰到的問題1

現在採用 spring boot 開發時,spring boot 開發的配置檔案結構目錄,如下圖所示:

配置結構

這樣有個好處是配置檔案可以分開,公用的配置項可以放在 application.properties 檔案裡面,再通過 spring.profiles.active 配置項來啟用 各個環境的配置項,在使用 spring cloud config 之後,可能還會多一個 bootstrap.properties , 這個檔案無法支援多環境配置 , 所以每次在使用 maven 構建打包時,總會手動去改大量配置,這樣打包時,可能忘記修改某個配置而導致最後釋出的包出現問題。所以我們需要用到使用 maven

進行多環境打包。

Maven 多環境打包

1. 修改 pom.xml

pom.xml 檔案中 新增 <profiles></profiles> 標籤,然後 在此標籤中加入<profile></profile>標籤進行多環境配置。

<profiles>
        <!-- 測試環境 -->
        <profile>
            <id>test</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <spring.profiles.active>test</spring.profiles.active>
            </properties>
        </profile>
        <!-- 開發環境 -->
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <spring.profiles.active>dev</spring.profiles.active>
            </properties>
        </profile>
        <!-- 生產環境 -->
        <profile>
            <id>pro</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <spring.profiles.active>pro</spring.profiles.active>
            </properties>
        </profile>
</profiles>

其中 <activeByDefault></activeByDefault> 標籤為true 時表示預設配置,通過 eclipse 執行 run asmaven install 時,預設使用 activeByDefaulttrue 的配置。
同時需要在 pom.xml 檔案中的 <build></build> 標籤中加入:

<build>
        <resources>
            <resource><!-- 掃描替換 -->
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

用來指定打包時,去替換指定檔案下的配置,這樣 pom.xml 配置完成。

修改 properties 檔案

修改 properties 檔案就特別簡單了,將在 pom.xmlprofileproperties 直接替換就行了。

[email protected]@
打包

此時如果執行 eclipse 中的 maven install 則會打包成預設的配置項。

eclipse run as 面板

但是通過 執行 maven build...

maven build...

Goals 中執行 clean install -P pro 則可打包其他環境。

相關推薦

Springboot Maven 環境打包以及聚合打包

說明開發中碰到的問題1現在採用 spring boot 開發時,spring boot 開發的配置檔案結構目錄,如下圖所示: 這樣有個好處是配置檔案可以分開,公用的配置項可以放在 application.properties 檔案裡面,再通過 spring.profiles.active 配置項來啟用 各個環

SpringBoot maven環境打包

1、maven pom.xml配置 新增profires <profiles>    <!--開發環境-->    <profile>       <id>dev</id>       <propertie

springboot maven 環境配置 jenking構建釋出配置

在後端開發中,應用程式在不同的環境可能會有不同的配置,例如資料庫連線、日誌級別等,開發,測試,生產每個環境可能配置都不一致。 使用Spring Boot的Profile可以實現多場景下的配置切換,方便開發中進行測試和部署生產環境。 下面就大致介紹一下yml配置檔案跟properties配置檔案怎

vue打包中的問題

打包後圖片和背景圖片的路徑報錯 使用vue init webpack生成的vue專案模板,在開發完打包後會出現圖片路徑和背景圖片路徑錯誤的問題,解決辦法如下。 修改config/index.js中的配置: build: { index: pa

使用Idea 打包釋出配置流程

1. idea前期準備:首先需要配置jdk版本,git和maven; 2. maven倉庫地址配置: 3. git配置: 4. 從遠端Git倉庫拉取程式碼: 5. 拉取到工程程式碼後,reimport載入工程依賴包

【Tensorflow】怎樣為你的網路預加工和打包訓練資料?

面對五花八門的資料集,各種各樣的資料儲存形式,剛新手入門的我們在處理這些情況的時候是否會手足無措?反正一路走來,我的經驗告訴我,deep learning的實驗階段,資料準備和處理過程往往會讓你碰一鼻子灰。明明知道如何搭建網路,還是完成不了實驗,究其原因,是資料工程經驗的不

Vue+Websocket實現人在線王者飛機

Vue requestAnimationFra 飛機大戰 WebSocket 看了Vue官方教程(貌似和自己寫的框架差別不大,聽前前端同事一直吹Vue,於是學習了一下,和自己寫的框架好像也沒強哪裏去嘛,就是要傲嬌哈哈),等有空也整理自己的框架,開源好了),想找個項目練練手(沒找到好的),就寫個

如何區分Babel中的stage-0,stage-1,stage-2以及stage-3

fun too com window 內容 解決 真的 creat 加載 大家知道,將ES6代碼編譯為ES5時,我們常用到Babel這個編譯工具。大家參考一些網上的文章或者官方文檔,裏面常會建議大家在.babelrc中輸入如下代碼: { "pres

UNIX環境高階程式設計的學習

UNIX環境高階程式設計第一個例子的編譯 這本書中有很多的例子,為了加深理解,習慣性自己敲一遍程式碼然後看執行結果,再去理解其中的知識點,但是在虛擬機器下如何編譯這些程式碼呢,需要以下幾步: 下載並解壓縮apue.3e檔案包 在“apue.h”中最後一行加:#inclu

SpringBoot通過Activiti6.0搭建工作流平臺-安裝Cygwin元件

由於最近專案需要通過Activiti6.0搭建工作流平臺,所以我打算通過SdkMan快速搭建工作流開發環境,由於我本地是Windows7的系統,所以我首先要實現在Windows中直接執行Linux的相關命令,這裡我選擇Cygwin元件。 一、下載 首先我們需要從Cygwin下載最新的Wind

執行緒斷點續傳

一、 學習內容 1、 基本UI定義 2、 資料庫的操作 3、 Service的啟動 4、 Activity給service傳遞引數 5、 使用廣播回傳資料到Activity 6、 執行緒和Handler 7、 網路操作:檔案的寫入,網路往本地磁碟寫入 二、 網路下

亞馬遜採摘挑戰中6D姿態估計的檢視自監督深度學習

倉庫自動化近年來引起了人們的極大興趣,也許最引人注目的是亞馬遜採摘挑戰賽(APC)。實現完全自主的取放系統需要強大的視覺系統,可以可靠地識別物體及其6D姿勢。然而,由於雜亂的環境,自我遮擋,感測器噪聲和各種各樣的物體,解決方案避開了倉庫設定。在本文中,我們提出了一個視覺系統,

大資料面試題以及答案整理

kafka的message包括哪些資訊 一個Kafka的Message由一個固定長度的header和一個變長的訊息體body組成 header部分由一個位元組的magic(檔案格式)和四個位元組的CRC32(用於判斷body訊息體是否正常)構成。當magic的值為

Java執行緒之基礎篇

一、併發和並行 1.1 概念 1.2 比較 1.3 程序和執行緒 二、基礎概念 2.1 執

阿里雲 linux伺服器環境搭建學習 安裝jdk

由於公司用於工作開發的電腦效能不佳,平時在工作過程中沒問題,但是自己去研究一下新框架的時候,一下跑2個idea+4-5個timcat時效能就不夠用了,所以自己購買了一臺低配的阿里雲伺服器,用於自己平時的學習。 寫這個部落格也是記錄下自己從頭到尾搭建服務環境的一個過程,畢竟平時在伺服器上動來動去的

SpringBoot的IOC模組註解及簡單案例

本文將會講到SpringBoot的IOC模組下的註解進行總結,主要目的是為了方便之後查詢註解和快速應用。 將會以:元件註冊,生命週期,屬性賦值,自動裝配來進行區分。示例程式碼的註解很重要 一、元件註冊 1、@Configuration:標註在類上。主要是告訴 Sprin

Java 執行緒程式設計學習總結

定義篇 程序(Process)和執行緒(Thread) 怎樣實現多工處理(Multitasking)? 多工處理是同時執行多個任務的過程。我們使用多工處理來利用 CPU。可通過兩種方式實現多工處理: · 基於程序的多工 (多重處理) · 基於執行緒的多工處理

大資料開發工程師面試題以及答案整理

kafka的message包括哪些資訊 一個Kafka的Message由一個固定長度的header和一個變長的訊息體body組成 header部分由一個位元組的magic(檔案格式)和四個位元組的CRC32(用於判斷body訊息體是否正常)構成。當magic的值為1的時候,會

Android端實現人音視訊聊天應用

本文轉載於資深Android開發者“東風玖哥”的部落格。 本系列文章分享了基於Agora SDK 2.1實現多人視訊通話的實踐經驗。 轉載已經過原作者許可。原文地址 自從2016年,鼓吹“網際網路寒冬”的論調甚囂塵上,2017年亦有愈演愈烈之勢。但連麥直播、線上抓娃

iOS開發之Weex爬坑之路環境部署和Devtools Debug

前言 不多說,直接開始Weex,算是記錄這段時間對新技術的學習積累。期間看了很多Vue.js和Node.js的基礎,順便捋了以下CSS的flex-box佈局等等前端的知識,太多了太雜了,還是用筆記記錄下。直接從官方介紹,開始 補充一個傳送門:和文章沒什麼關係 JS中的async和await