gradle引入子module配置_module下的gradle文件的基本配置

本文详细介绍了Android开发中module的gradle文件配置,包括apply节点、android节点(如packagingOptions、lintOptions、signingConfigs等)和dependencies的设置。此外,还提到了多渠道打包、签名配置以及第三方库的依赖管理。
摘要由CSDN通过智能技术生成

本文将介绍平常android开发当中项目module的gradle文件中的基本配置(不包含创建的library进行上传到jcenter的脚本配置),以及针对一些常见的问题进行说明。

欢迎加入交流群:微信群(AndroidRunner )、QQ群(314896948)

欢迎关注微信公众号:AndroidRunner

在项目的module目录下的gradle文件主要包含三个节点,分别是apply、android和dependencies,下面就将这三个节点分别做一个介绍。

1.apply节点

apply所标识的用以区分了application以及library。这个节点的作用就是用来区分当前module是可以作为应用程序还是作为一个应用程序的支持库module。

application module使用如下:

applyplugin:'com.android.application'

library使用如下:

apply plugin: 'com.android.library'

2.android节点

packagingOptions

packagingOptions {

pom.properties'

exclude 'project.properties'

exclude 'META-INF/LICENSE.txt'

exclude 'META-INF/LICENSE'

exclude 'META-INF/NOTICE.txt'

exclude 'META-INF/NOTICE'

exclude 'META-INF/DEPENDENCIES.txt'

exclude 'META-INF/DEPENDENCIES'

}

我们在开发过程当中可能会遇到这样的问题,导入了很多的三方库或者框架,在项目编译的时候会报重复文件错误,如下图

解决这个错误的方法就可以在packagingOptions中加入以下两句:

exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'

exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'

lintOptions

lintOptions {

disable 'MissingTranslation'

abortOnError false

ignoreWarnings true

}

其中disable 'MissingTranslation'是在lint检查的时候禁用翻译缺少检查,如果你的项目不考虑国际化可以加上,如果需要国际化就去掉该行即可。abortOnError false设置在lint检查时如果出现error是否需要中断,如果对lint检查要求不高可以设置为false,关心lint检查的话设置true即可。ignoreWarnings true设置是否忽略警告,在lint检查时会对一些代码进行警告比如有用了过时API的注解地方,一般可以设置为true,忽略掉警告。lintOptions还有其他一些控制开关,具体可以点进lintOptions源码查看。

signingConfigs

signingConfigs {

debug {

keyAlias 'android'

keyPassword 'android'

storeFile file('E:/debug.jks')

storePassword 'android'

}

release {

keyAlias 'psw'

keyPassword 'psw'

storeFile file('keystore addresss')

storePassword 'psw'

}

}

signingConfigs是项目module的签名配置信息,主要包括调试版和发布版,考虑隐私信息可以仅使用debug即可,release在导出包使用手动添加。几个字段含义应该开发者都比较清楚了,这里不做介绍。

compileSdkVersion

compileSdkVersion 23

编译SDk的版本号,改版本号决定使用的SDK对应的android源码,android源码随着版本的不断更新,各个版本间也有着一定的区别,这里所填写的版本号关系到具体代码的一些API的使用,可以根据当前APP的版本兼容要求做相应的兼容。

buildToolsVersion

buildToolsVersion "23.0.2"

使用的编译工具版本号指定,对于应编译版本号即可。

defaultConfig

defaultConfig {

applicationId "com.xxx"//app的唯一标识符,一般使用包名

minSdkVersion 14 //app要求最低的SDK版本号 对于应android可使用的最低系统版本

targetSdkVersion 23 //目标版本SDK版本号

versionCode 1 // app版本号

versionName "1.0.0" // app版本名称

// 多渠道打包默认渠道(以umeng为例)

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "GF"]

}

defaultConfig里面可以设置app的一些相关默认配置信息,包括应用的id,可使用最低版本,版本号,版本名称等。

buildTypes

buildTypes {

debug {

minifyEnabled false

zipAlignEnabled false

shrinkResources false

}

release {

minifyEnabled true

zipAlignEnabled true

shrinkResources true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

buildTypes设置编译对应的版本时所需的一些配置设置,可以针对调试版和发布版进行不同的设置是否需要混淆、是否需要压缩、是否需要删减无用资源等。

sourceSets

sourceSets.main {

jniLibs.srcDir 'libs'

}

sourceSets用来设置项目对应文件资源的路径位置,比如习惯平常的把jni文件so包存放在libs目录下即可设置jniLibs.srcDir 'libs',也可以设置其他文件目录,包括源码,资源,jar包等等。

productFlavors

productFlavors {

GF {}

wandoujia {}

//... add more

}

productFlavors.all { flavor ->

flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

productFlavors提供了多渠道打包的渠道设置,成列了可生产的取到列表,productFlavors.all通过遍历productFlavors中的所有条目对应替换AndroidManifest.xml下面meta节点key为UMENG_CHANNEL_VALUE的value,从而生成对应渠道的apk包

3.dependencies

dependencies下面是项目的依赖第三方支持库存放,包括libs目录及目录树下子目录所有的jar包,以及按照jcenter仓库库命名的的三方支持库。样例如下:

dependencies {

compile fileTree(include: ['*.jar'], dir: 'libs')

compile 'com.android.support:appcompat-v7:23.3.0'

compile 'com.android.support:design:23.3.0'

compile 'com.squareup.picasso:picasso:2.5.2' //picasso

compile 'com.squareup.okio:okio:1.6.0' //okio

compile 'com.squareup:otto:1.3.8' //otto

compile 'com.alibaba:fastjson:1.2.7' //fastjson

}

下面给出一个完整的gradle基本配置#

apply plugin: 'com.android.application'

android {

packagingOptions {

exclude 'project.properties'

exclude 'META-INF/LICENSE.txt'

exclude 'META-INF/LICENSE'

exclude 'META-INF/NOTICE.txt'

exclude 'META-INF/NOTICE'

exclude 'META-INF/DEPENDENCIES.txt'

exclude 'META-INF/DEPENDENCIES'

}

lintOptions {

disable 'MissingTranslation'

abortOnError false

ignoreWarnings true

}

signingConfigs {

debug {

keyAlias 'android'

keyPassword 'android'

storeFile file('E:/debug.jks')

storePassword 'android'

}

release {

keyAlias 'psw'

keyPassword 'psw'

storeFile file('keystore addresss')

storePassword 'psw'

}

}

compileSdkVersion 23

buildToolsVersion "23.0.2"

defaultConfig {

applicationId "com.xxx"//app的唯一标识符,一般使用包名

minSdkVersion 14 //app要求最低的SDK版本号 对于应android可使用的最低系统版本

targetSdkVersion 23 //目标版本SDK版本号

versionCode 1 // app版本号

versionName "1.0.0" // app版本名称

// 多渠道打包默认渠道(以umeng为例)

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "GF"]

}

buildTypes {

debug {

minifyEnabled false

zipAlignEnabled false

shrinkResources false

}

release {

minifyEnabled true

zipAlignEnabled true

shrinkResources true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

sourceSets.main {

jniLibs.srcDir 'libs'

}

productFlavors {

GF {}

wandoujia {}

//... add more

}

productFlavors.all { flavor ->

flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

}

}

dependencies {

compile fileTree(include: ['*.jar'], dir: 'libs')

compile 'com.android.support:appcompat-v7:23.3.0'

compile 'com.android.support:design:23.3.0'

compile 'com.squareup.picasso:picasso:2.5.2' //picasso

compile 'com.squareup.okio:okio:1.6.0' //okio

compile 'com.squareup:otto:1.3.8' //otto

compile 'com.alibaba:fastjson:1.2.7' //fastjson

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gradle 是一个基于 Groovy 语言的自动化构建工具,可以用于构建 Java、C++、Python、JavaScript 等多种语言的项目。在 Gradle 中,一个项目可以由多个项目组成,这些项目可以分别进行构建、测试、打包等操作。本文将介绍如何在 Gradle引入模块,并对模块进行配置。 1. 创建一个 Gradle 项目 首先,我们需要创建一个 Gradle 项目。可以使用命令行 `gradle init` 创建一个新的 Gradle 项目。在创建项目时,需要选择构建脚本语言、项目类型、测试框架等选项。这里我们选择使用 Groovy 语言,创建一个 Java 应用程序项目。 2. 添加模块 在项目根目录下创建一个 `settings.gradle` 文件,并在该文件中添加模块的名称。例如,如果我们希望在项目中添加一个名为 `submodule` 的模块,可以在 `settings.gradle` 文件中添加以下内容: ``` include 'submodule' ``` 接下来,在项目根目录下创建一个名为 `submodule` 的目录,并在该目录下创建一个 `build.gradle` 文件。在该文件中可以定义模块的构建任务、依赖关系等。 3. 配置模块 在 `submodule/build.gradle` 文件中,可以定义模块的构建任务和依赖关系。例如,以下代码定义了一个名为 `hello` 的任务: ``` task hello { doLast { println 'Hello from submodule!' } } ``` 我们可以在项目根目录下运行以下命令来执行该任务: ``` ./gradlew :submodule:hello ``` 另外,我们可以在 `submodule/build.gradle` 文件中定义模块的依赖关系。例如,以下代码定义了一个依赖于 `junit` 测试框架的模块依赖关系: ``` dependencies { testImplementation 'junit:junit:4.12' } ``` 4. 使用模块 在项目根目录下的 `build.gradle` 文件中,可以通过 `include` 方法引入模块,并定义模块的依赖关系。例如,以下代码引入了名为 `submodule` 的模块,并定义了模块依赖于 `log4j` 日志框架和 `junit` 测试框架: ``` include 'submodule' dependencies { implementation 'org.apache.logging.log4j:log4j-core:2.12.1' } subprojects { dependencies { testImplementation 'junit:junit:4.12' } } ``` 这样,我们就可以在项目中使用模块了。 总结 本文介绍了如何在 Gradle引入模块,并对模块进行配置。通过使用模块,我们可以将一个大型项目拆分成多个小模块,便于管理和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值