1. 程式人生 > >gradle 工程依賴 打包 配置檔案

gradle 工程依賴 打包 配置檔案

gradle 父工程下,有兩個子工程,A 和 B,A 依賴於 B,A 中的 build.gradle 檔案中有:

dependencies {
compile(project("B"))

}

使用命令 gradle :A:installDist 將 A 打包,lib 目錄下會有 B.lar 檔案,然而 B 工程的配置檔案並沒有打包到 A 的目錄下或者 B.jar 的壓縮包中.

於是有兩個關於打包的問題:

1.如何在打包 A 時,將B 中的 *.properties 檔案如何打包到 B.jar 中

2.如何在打包 A 時,直接將 B 中的 *.properties 檔案打包到 A 的 conf 目錄下

第 1 個問題,由於父工程下  build.gradle 中對於所有的 subprojects 都有如下配置

jar {
        exclude('**/*.properties')
        exclude('**/static')
        exclude('**/templates')
    }

故所有工程打包時,jar 裡面都不會含有配置檔案。

一般來講,所有的配置檔案都不應該包含在 jar 中,讓它可配置。

第 2 個問題,可以這樣解決,在 A 打包時,將  B 的配置檔案一起打包, build.gradle 中寫入:

applicationDistribution.from('../B/src/main/resources/') {
    into 'conf'
}

另外還要處理好 B 中的配置檔案與 A 中 conf 配置重名的問題

一般來講,所有被依賴的工程(一般是公共的工程)的配置檔案都應該放在使用工程中去,不應該放在被依賴工程中,一旦某個使用工程配置要改變,不會影響其它使用工程的行為。