SpringBoot線上部署踩坑
SpringBOOT專案在線上部署時,要麼在命令列裡新增–spring.profiles.active=prod來指定環境,要麼通過maven 打包時動態傳參啟用–spring.profiles.active=prod,之前對於SpringBOOT的專案部署都是採用命令列方式啟用環境分支,現專案整合部署環境,採用的maven -p方式啟用環境分支,需將啟用的分支變數傳遞給
spring.profiles.active=prod
plugin指定maven打包時需要取得引數,根據引數來設定打包的環境的配置檔案
另外需要建一個application.yml檔案指定啟動檔案環境
application.yml方式配置如下:
spring:
profiles:
active: @profileActive@
<profiles>
<profile>
<id>product</id>
<properties>
<profileActive>prod</profileActive>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource> <!-- 配置需要被替換的資原始檔路徑, properties 應該在 src/main/resource 目錄下 -->
<directory>src/main/resources</directory>
<excludes>
<exclude>static/**</exclude>
</excludes >
<filtering>true</filtering> <!-- 是否使用過濾器 -->
</resource>
</resources>
</build>
傳統的maven 專案在對配置檔案中進行佔位符替換時,如下開啟對某個目錄下的檔案過濾替換就行,配置檔案中佔位符為${…},但是在SpringBOOT專案中,配置檔案要想從maven中獲取環境變數,佔位符得是@…@
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
13.2 Maven
Maven users can inherit from the spring-boot-starter-parent project to obtain sensible defaults. The parent project provides the following features:
Java 1.6 as the default compiler level.
UTF-8 source encoding.
A Dependency Management section, allowing you to omit tags for common dependencies, inherited from the spring-boot-dependencies POM.
Sensible resource filtering.
Sensible plugin configuration (exec plugin, surefire, Git commit ID, shade).
Sensible resource filtering for application.properties and application.yml including profile-specific files (e.g. application-foo.properties and application-foo.yml)
On the last point: since the default config files accept Spring style placeholders (${…}) the Maven filtering is changed to use @[email protected] placeholders (you can override that with a Maven property resource.delimiter).
大致的意思是我的maven繼承了spring-boot-starter-parent,並且spring預設配置檔案接受的佔位符也是…,所以mavenfilter{}佔位符就被spring的maven pom替換掉了,變成了@[email protected],我們可以通過resource.delimiter來覆蓋它。
看下spring-boot-starter-parent 這個pom裡寫這一段
<properties>
<java.version>1.6</java.version>
<resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn't clash with Spring ${} placeholders -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
總結:所以Springboot 專案在啟動時要麼採用命令列方式啟用,也可以採用mavan 打包傳遞引數啟用,更多啟用方式可以檢視SpringBOOT的配置優先順序可以參考 SpringBoot系列(三)內建配置及自定義配置
相關推薦
SpringBoot線上部署踩坑
SpringBOOT專案在線上部署時,要麼在命令列裡新增–spring.profiles.active=prod來指定環境,要麼通過maven 打包時動態傳參啟用–spring.profiles.active=prod,之前對於SpringBOOT的專案部
github webhook 實現代碼自動部署 踩坑!!
添加 sudoers lin http 必須 ebs spa 踩坑 bsp 踩坑: 1、php程序執行linux命令是以webserver的user用戶(如apache 、www……)操作的,需要在/etc/sudoers添加用戶免密碼操作權限; 2、以we
SpringBoot + Elasticsearch之踩坑記錄
spring boot 1.x支援elasticsearch <5.x elasticsearch安裝:按官網安裝步驟: (1)curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticse
Mac系統STF自動化部署踩坑記錄
com div safe github ont 使用 src ash gic 因為公司需要尋找一個免root的自動化測試方案,所以以前做的老方案需要被替代。一陣搜尋找到了這個框架,但是部署起來很是折騰,搞了一下午終於搞定,順便記錄一下過程,有需要的自取。 環境搭建
SpringBoot整合mybatis踩坑
img invalid clas png XML map 自己 分享圖片 運行 springboot整合mybaits過程中,調用接口時報錯:org.apache.ibatis.binding.BindingException: Invalid bound stateme
【踩坑經歷】一次Asp.NET小網站部署踩坑和解決經歷
2013年給1個大學的小客戶部署過一個小型的Asp.NET網站,非常小,用的sqlite資料庫,今年人家說要換臺伺服器,要重新部署一下,好吧,雖然早就過了服務時間,但無奈誰叫人家是客戶了,二話不說,上,原始碼和以前的檔案都有,部署還不是分分鐘的事情,開啟IIS掛上去就行了。誰知道,這個部署將近花了2天的時
ABP中服務介面Web.Host部署踩坑
部署ABP.Web.Host後報如下錯誤: 後來解決方案是因為伺服器沒有安裝.netframe4.6. 去官網下載了。NDP472-KB4054531-Web.exe 更新了.netframe4.7.2.問題解決了。
airflow分散式部署踩坑記錄之安裝篇
前言 airflow是一款基於python的開源任務流排程系統,但是關於airflow的安裝教程比較匱乏。本人在親自安裝的過程中遇到了很多奇葩的問題,期間也參考了網上的各種資料,在此做下記錄,以備不時之需。 系統環境 作業系統 Centos6.5
Windows HBase2.2.0安裝部署踩坑
下載安裝 hbase下載 解壓之後根目錄,沒有什麼要修改的。 配置檔案目錄,主要修改hbase-env.cmd和hbase-s
IdentityServer 部署踩坑記
# IdentityServer 部署踩坑記 ## Intro 週末終於部署了 `IdentityServer` 以及 `IdentityServerAdmin` 專案,踩了幾個坑,在此記錄分享一下。 ## 部署架構 專案是基於 [IdentityServerAdmin]() 專案修改的,感謝作者的開
伺服器重新部署踩坑記
# 伺服器重新部署踩坑記 ## Intro 之前的伺服器是 Ubuntu 18.04 ,上週週末想升級一下伺服器系統,從 18.04 升級到 20.04,結果升級升掛了... 後來 SSH 始終連不上,索性刪除重新部署了一個,新部署了一個 Centos 8 的系統,新部署之後很多東西需要配置,折騰了好幾天
SpringBoot專案(單模組、多模組)使用docker容器執行jar包映象(踩坑)
SpringBoot專案(單模組、多模組)使用docker容器執行jar包映象(踩坑) 1.mavem docker外掛配置 <!--docker 外掛配置--> <build> <finalName>生成jar包的名稱</
Angular2,Springboot,Zuul,Shiro跨域CORS請求踩坑實錄
前言:前後端分離,業務分離,閘道器路由等已經成為當下web application開發的流行趨勢。前端以單頁面路由為核心的框架為主體,可以單獨部署在nodejs或nginx上。後端以springboot為代表的分散式微服務框架為主體,可以獨立執行在任何埠上。相互通過符合restful規範的介面訪問或資料交換。
SpringBoot-整合PageHelper5.1.2踩坑
背景就不介紹了,專案是SpringBoot+MyBatis搭建的,需要整合git上的PageHelper5.1.2,這個外掛大家都比較熟悉了 之前一直用的PageHelper4.0.3,整合是這樣的: //分頁外掛 PageHelper pageHelper = new PageHelp
SpringBoot踩坑指南(一):超連結--不能不經過請求直接跳轉到新的html及a標籤傳值
本篇博文轉自:https://blog.csdn.net/qq_36688143/article/details/79499959 html連結傳值及在新html取值和顯示上一步操作封裝的屬性資訊(顯示剛才建立的資料夾、發表的文章等)點選開啟連結 a標籤遍歷list傳值、傳請求:
Apache部署flask的一些踩坑記錄(win64+python36)
基礎配置: 將一個Flask應用部署到本地的Windows伺服器上。作業系統是64位的,程式是基於Python 3.6開發的。 部署選擇: mod_wsgi + Apache 注意事項: 不能混用32位和64位的檔案 安裝Python時要選擇“Install
部署Jenkins實現Git提交後自動構建的踩坑記錄
1、建立工程後項目的"原始碼管理"->"Git"->"Repositories"配置中,Repository URL的地址填寫需要注意:如果你的URL是http協議的地址,直接填入就好;如果你的URL是ssh協議的地址,則需要把"ssh://"去掉之後再填入。例如:完整地址為ssh:
SpringBoot+Mybatis+PageHelper分頁(踩坑-total總數有誤)
方式一:使用原生的PageHelper(親測OK) 1.在pom.xml中引入依賴 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId
Springboot中使用Mybatis框架對資料庫進行聯表查詢,踩坑填坑
因為mybatis使用的基本是原生sql語句 所以首先從資料庫開始說 以mysql資料庫為例,對錶的連線查詢分為四種 內連線,外連線,交叉連線,和聯合連線 內連線使用比較運算子根據每個表共有的列的值匹配兩個表中的行 sql語句舉例:聯接查詢user,order表
SCCM部署運維之踩坑攻略
提示:由於科技發展日新月異,在筆者釋出文章時所貼的連結在此時是有效的,但不排除後續因軟體產品的版本更新導致連結失效。 目錄 需注意事項 SCCM簡介 SCCM是微軟推出的一款企業級資產運維平臺,屬於System Center家族產品的一員。全稱為Sy