gradle 工程依赖 打包 配置文件

本文探讨了在Gradle项目中如何将子项目B的*.properties文件正确打包进A项目的流程。具体包括如何排除默认设置的影响,以及如何通过配置让特定配置文件跟随主项目A一起打包。

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 配置重名的问题

一般来讲,所有被依赖的工程(一般是公共的工程)的配置文件都应该放在使用工程中去,不应该放在被依赖工程中,一旦某个使用工程配置要改变,不会影响其它使用工程的行为。

Gradle 是 Android 应用开发中重要的构建工具,能让构建、测试和打包 Android 应用程序的过程更高效快捷,以下是不同类型的 Gradle 工程打包方法: - **Android 应用打包**:可使用 Gradle 命令进行打包。在 Android 应用开发里,Gradle 可助力完成打包工作。虽然未给出具体命令示例,但它能使打包过程高效快捷 [^1]。 - **Jar 包打包**:打瘦包(不带依赖 jar)时,可按如下配置: ```groovy jar { manifest { attributes 'Built-By': System.getProperty('user.name'), 'Build-Jdk': System.getProperty('java.version') } } ``` 此外,打包源码包时,需把 build 目录以及 .gradle 目录删掉,让工程仅含代码,以减少空间占用 [^3]。 - **自定义打包**:示例代码如下: ```groovy bootJar { File dir = file("build/") if (dir.isDirectory()) { dir.eachFileRecurse { file -> def name = file.getName() if (file.isFile() && name.startsWith('version')) { file.delete() } } } String fileName = "build/version.info" doFirst { File out = file(fileName) out.withWriter('UTF-8') { writer -> writer.write("提交记录: " + "\r\n" + 'git log --oneline -5'.execute().text.trim() + "\r\n\r\n") writer.write("打包分支: " + 'git rev-parse --abbrev-ref HEAD'.execute().text.trim() + "\r\n") writer.write("当前用户: " + 'git config user.email'.execute().text.trim() + "\r\n") writer.write("打包时间: " + new Date().format('yyyy-MM-dd HH:mm:ss') + "\r\n") } } from ("build/version.info") { into '/'} } ``` 此配置可在打包时删除 build 目录下以“version”开头的文件,同时生成包含提交记录、打包分支、当前用户和打包时间等信息的 version.info 文件,并将其包含进打包文件 [^5]。 - **Eclipse 下 Android 应用打包**:需先将下载的文件解压,接着设置系统环境变量。设置变量名 `GRADLE_HOME`,变量值为 Gradle 文件的根目录,例如 `C:\xiong\gradle - 1.10 - all\gradle - 1.10`,然后设置 `path`,在后面加上 `C:\xiong\gradle - 1.10 - all\gradle - 1.10\bin` [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值