通過一種奇葩的快捷方式給web工程打不同環境包
通常而言,開發環境和生產環境參數有著較大的差異,在上古時代,猿們通過打包時或者開發時手工修改配置文件的方式來區分生產環境和開發環境。顯然這種方式是比較低效且lowbee的。那么,我們可以將不同環境的配置文件各建一份,通過Gradle來進行不同環境的打包。比如如下幾種方式
- 根據不同環境的參數建立不同的環境文件,打包時只打包相應的環境文件
- 把環境參數配置到x.properties文件中,打包時從文件中讀取相應參數動態修改配置文件
下面的姿勢是選取的第一種,在src/main/resources
按不同環境建立相應的folder,打包時將不需要環境文件排除掉。當然我這里只是一個示例,實際情況可以自行修改代碼實現,比如如果不想保留環境目錄直接把環境文件打包到src/main/resources
,則直接把環境目錄追加到srcDir下即可
執行下面的命令打相關環境的包
gradle -q -Penv=pro
可以修改gradle.properties
中的env
默認值
gradle.properties
env=dev
這種方式是直接將環境包目錄下的文件打包到resources根目錄下的方式
build.gradle
apply plugin: 'java'
sourceSets {
main {
resources {
srcDir "src/main/resources/${env}"
sourceSets.main.resources.srcDirs.each {
it.listFiles().each {
if(it.isDirectory()) {
exclude "${it.name}"
}
}
}
}
}
}
------------------ ------------------ wei suo fen ge xian ------------------ ------------------
下面這種是保留環境包目錄的方式
build.gradle
apply plugin: 'java'
sourceSets {
main {
resources {
sourceSets.main.resources.srcDirs.each {
it.listFiles().each {
if(it.isDirectory() && it.name != "${env}") {
println "exclude ${it.name}"
exclude "${it.name}"
}
}
}
}
}
}