通過一種奇葩的快捷方式給web工程打不同環(huán)境包
通常而言弧可,開發(fā)環(huán)境和生產(chǎn)環(huán)境參數(shù)有著較大的差異,在上古時代劣欢,猿們通過打包時或者開發(fā)時手工修改配置文件的方式來區(qū)分生產(chǎn)環(huán)境和開發(fā)環(huán)境棕诵。顯然這種方式是比較低效且lowbee的。那么凿将,我們可以將不同環(huán)境的配置文件各建一份校套,通過Gradle來進行不同環(huán)境的打包。比如如下幾種方式
- 根據(jù)不同環(huán)境的參數(shù)建立不同的環(huán)境文件牧抵,打包時只打包相應的環(huán)境文件
- 把環(huán)境參數(shù)配置到x.properties文件中笛匙,打包時從文件中讀取相應參數(shù)動態(tài)修改配置文件
下面的姿勢是選取的第一種,在src/main/resources
按不同環(huán)境建立相應的folder,打包時將不需要環(huán)境文件排除掉犀变。當然我這里只是一個示例妹孙,實際情況可以自行修改代碼實現(xiàn),比如如果不想保留環(huán)境目錄直接把環(huán)境文件打包到src/main/resources
获枝,則直接把環(huán)境目錄追加到srcDir下即可
執(zhí)行下面的命令打相關環(huán)境的包
gradle -q -Penv=pro
可以修改gradle.properties
中的env
默認值
gradle.properties
env=dev
這種方式是直接將環(huán)境包目錄下的文件打包到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 ------------------ ------------------
下面這種是保留環(huán)境包目錄的方式
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}"
}
}
}
}
}
}