gradle專案中profile的實現
gradle中並沒有直接類似maven中的profile支援,只能變通的用其它方法來處理,在打包不同環境的應用時,通常會遇到二類問題:
一、不同的環境依賴的jar包不同
拿web開發來說,生產環境一般會採用weblogic,jboss這類重量級的容器,通常這類web server已經內建了很多第三方的通用jar包,而開發環境,一般採用嵌入式jetty這類輕量級的容器,內建的jar包會少一些,在maven中可以用<scope>provided</scope>來處理,到了gradle中可以這麼處理:
build.gradle檔案參考下面的寫法:
def env = System.getProperty("env") ?: "dev" apply from: "profile-${env}.gradle"
大概意思是,根據傳入的引數env不同,載入不同的profile檔案。在同級目錄下,要放二個檔案(下面演示的場景為,dev環境載入的spring版本為4.1.6,而prod環境載入的spring版本為4.2.3):
profile-dev.gradle
dependencies { compile 'org.springframework:spring-core:4.1.6.RELEASE' compile 'org.springframework:spring-beans:4.1.6.RELEASE' compile 'org.springframework:spring-context:4.1.6.RELEASE' compile 'org.springframework:spring-context-support:4.1.6.RELEASE' compile 'org.springframework:spring-aop:4.1.6.RELEASE' }
profile-prod.gradle
dependencies { compile 'org.springframework:spring-core:4.2.3.RELEASE' compile 'org.springframework:spring-beans:4.2.3.RELEASE' compile 'org.springframework:spring-context:4.2.3.RELEASE' }
編譯時,gradle命令這麼寫:
gradle build -Denv=prod 這樣編譯的就是prod環境
gradle build -Denv=dev 這樣編譯的就是dev環境(注:dev是預設環境,所以如果是dev環境,最後的-Denv=dev也可以省略)
二、不同的環境,配置的引數不同
思路:為每個環境建不同的目錄,把各環境的屬性檔案按目錄存放,編譯時動態設定gradle的資源目錄
sourceSets { main { resources { srcDirs = ["src/main/resources", "src/main/profile/$env"] } } }
在剛才的基礎上,再加入這一段即可。
整個專案的結構圖如下:
相關推薦
gradle專案中profile的實現
gradle中並沒有直接類似maven中的profile支援,只能變通的用其它方法來處理,在打包不同環境的應用時,通常會遇到二類問題: 一、不同的環境依賴的jar包不同 拿web開發來說,生產環境一般會採用weblogic,jboss這類重量級的容器,通常這類web server已經內建了很多第三方的通用
Lucene筆記38-Lucene在專案中的實現分析
一、實時搜尋中存在的問題 上一節我們提到NRT實時搜尋,實時搜尋的提交併不是實時的,可能要好幾個小時才能提交一次,為什麼搜尋這麼快呢,因為索引資料更新都在記憶體中實現的,那麼,假設有這麼一種情況,還沒有提交,機器突然掛掉了,那硬碟上的資料還是舊的,就會存在資料不一致的問題了。現在有一個解決方
Java Gradle專案中的資源正確獲取
引言 兩個getResource方法 小結 引言 一個Java Gradle專案會涉及到資源的訪問. 一般情況下會將當前專案所需的資原始檔全部放置
前端框架Vue——vue-i18n ,vue專案中如何實現國際化,$t的用法
一、demo 場景需求分析 需求很簡單,左上角 ‘’網易雲音樂‘’就是一箇中英文切換的按鈕,點選彈出提示框,確認切換語言後,實現英文版本。 切換成英文版本: 二、實現國際化 首先,我開發是以 vue 為技術棧,所以如題用的國際化外掛是 vue
Gradle專案中gradle.build檔案中的buildScript程式碼塊
在編寫Gradle指令碼的時候,在build.gradle檔案中經常看到這樣的程式碼: buildScript { repositories { mavenCentral() } } repositories { mavenCe
vue專案中要實現展示markdown檔案
網上有很多用vuepress的方法,我試了下,另外起一個vue程式的話,很容易實現該方法,但是如果是要嵌入到已有的vue專案中,我沒有嘗試成功,於是用了以下方法來實現。 1)安裝npm install
使用android studio將eclipse專案改造成gradle專案中踩過的坑
本文中部分內容是看過了張大神的部落格後分享出來的。 其實android studio使用起來和之前習慣用eclipse開發區別並不大,只是一些快捷鍵發生了變化,這個是需要你
gradle專案中如何支援java與scala混合使用?
一、目錄結構 基本上跟maven一樣,tips:這一堆目錄結構不用死記,後面會講如何用gradle命令快速生成 二、build.gradle配置 1 group 'yjmyzz' 2 version '1.0-SNAPSHOT' 3 4 appl
Android Studio] Gradle專案中新增JNI生成檔案(.so檔案)
轉:http://blog.csdn.net/qiujuer/article/details/24209457 為了適應潮流使用Android Studio還是有半年多了! 對於從Eclipse遷移專案到Android Studio中新增.jar檔案和.so檔案無疑是一件很重要也是很頭疼的問題! 在最新
前端框架Vue(16)——vue-i18n ,vue專案中如何實現國際化
一、前言 趁著10月的最後一天,來寫一篇關於前端國際化的實踐型部落格。國際化應該都不陌生,就是一個網站、應用可以實現語言的切換。 在這就不談原理,只說說如何實現中英文的切換。做技術的總得先把 demo 做出來嘛。 二、demo 場景需求分析
[Android Studio] Gradle專案中新增JNI生成檔案(.so檔案)
轉自:http://blog.csdn.net/qiujuer/article/details/24209457?utm_source=tuicool&utm_medium=referral 為了適應潮流使用Android Studio還是有半年多了! 對於從
IntelliJ IDEA如何在Gradle專案中支援Web Application
總結步驟如下: 1、專案結構如下: project |——web |———WEB-INF |————web.xml |————index.jsp 2、配置
vue專案中如何實現國際化
一、前言 趁著10月的最後一天,來寫一篇關於前端國際化的實踐型部落格。國際化應該都不陌生,就是一個網站、應用可以實現語言的切換。 在這就不談原理,只說說如何實現中英文的切換。做技術的總得先把 demo 做出來嘛。二、demo 場景需求分析需求很簡單,左上角 ‘’網易雲音樂
所謂的網頁爬蟲用java程式碼來實現,此程式碼適合在maven專案中使用中使用,因為,程式碼中的類所對應的依賴可以讓maven下載。
//獲得httpClient物件 CloseableHttpClient httpClient = HttpClients.createDefault(); //url公司域名隨便 String url = "https://www.baidu.co
vue專案中實現新增收藏的功能,以及利用vue-resource傳送請求
1.新增收藏功能 建立一張表,儲存歌手id,使用者id,利用外來鍵將歌手錶與使用者表關聯起來。如果新增收藏之後,為該使用者新增一條資料,取消收藏後,將該條資料刪除。 當用戶登入之後才能顯示歌手列表中該使用者已經收藏過的歌手,然後將這些收
在vue專案中實現註冊時改變頭像,同時實現將圖片上傳的伺服器端
一.如何實現在註冊時點選頭像時實現更改圖片的操作 1.將img和input[type="file"]放在同一個div中,利用絕對定位,讓兩者擁有相同的大小,將input的預設樣式變為透明,讓img覆蓋的input之上;img中有一個屬性,acc
JavaWeb企業級專案中接入順豐官方API實現物流實時查詢(親測有效)
由於現在順豐與快遞100鬧掰了,所以使用快遞一百已經查不到順豐的物流資訊了,包括快遞鳥等,現在想要在專案中實現順豐快遞的物流查詢只能用順豐官方API來查詢,然而這個官方的API並沒有快遞一百那些介面那麼容易,需要很複雜的一套流程,並且順豐用的返回形式都是XML檔案,就需要設計到XML檔案的修改與
vue專案中jsonp抓取資料實現方式
先安裝依賴:cnpm install --save jsonp 程式碼如下: 1. 然後建立一個jsonp.js import originJSONP from 'jsonp' //引用jsonp export default function jsonp(url,data,opt
vue專案中,實現遮罩
問題: 1.vue中的元件會自動生成虛擬DOM,無法設定高度的百分比 2.選擇vue例項的鉤子函式 實現: 選擇mounted鉤子函式(此函式是在DOM渲染完成之後呼叫),在此函式值中動態設定目標div的高度,高度的單位為px.用另一個元素的clientHeight為目標idv賦值 程式碼
關於專案中的執行緒的堆疊詳細資訊,利用jsp頁面來實現。
在實際的專案中我們通過Thread.getAllStacktraces()方法進行檢視相關的資訊。這樣可以隨時方便的管理檢視程式中的執行緒的相關資訊 <%@ page language="java" contentType="text/html; charset=utf-8"