Gradle的入门指引,gradle虽难但真的香

一、Gradle依赖管理

1、工件坐标 group 、name、version

2、常用仓库

    1. mavenLocal / mavenCentral / jcenter
  • 2.自定义maven仓库(自己搭建maven私服,内部)
repositories {//阿里云
    maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
  • 3.文件仓库(基本不用)

3、依赖具有传递性

4、依赖阶段配置

  • compile : 依赖的包,编译并打包到最终的 apk 文件中。

  • provided : 依赖的包只参与编译而不会打包到最终的 apk 文件中。

  • runtime : 适用于依赖的包只作用在运行时而不需要在编译时

#二、Gradle依赖冲突的解决方式

Gradle依赖冲突解决冲突的方法一般都是让gradle自动处理。

1、查看依赖报告

2、排除传递性依赖解决冲突/强制一个版本解决冲突

扫描二维码关注公众号,回复: 14396878 查看本文章

①修改后产生冲突构建失败,修改策略手动解决。

②排除(低版本)传递性依赖的时候module就是坐标中的name属性。

transitive是排除所有传传递依赖(一般不用)

③强制指定一个版本。

3、gradle默认依赖最高级版本的依赖

三、gradle多项目构建、添加logback日志功能、以及相关配置

项目模块化

1、所有项目使用java插件(这里以java为例,大家可以根据自己的项目决定)

在根项目的build.grdle中配置,子项目中的参数删除

allprojects {//对所有项目应用
    apply plugin: 'java'
    sourceCompatibility = 1.8
}
//特殊应用的模块在直接的build.gradle中声明即可
这里的配置是有顺序的allprojects必须在subprojects的上方(别问我为啥。说多了都是泪)

2、配置Web子项目打包成war

  在web模块build.grdle中配置apply plugin: 'war'

3、所有项目添加logback日志功能

subprojects {
    repositories {
        mavenLocal()//本地仓库
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        mavenCentral()
    }

    dependencies {//统一配置了项目中的junit
        testCompile group: 'junit', name: 'junit', version: '4.12'
        compile 'ch.qos.logback:logback-classic:1.3.0-alpha4'
    }
}

4、统一配置group 和version

在根项目下新建gradle.properties 文件

group =com.du.gradle//之这里的group不能加引号,不然插件发布时会报错
version = '1.0-SNAPSHOT'

5、子项目之间的依赖

本项目模块build.grdle中配置compile project(“:model”)

备注:
①根目录下的settings.gradle是用的管理根项目和子项目的

②相同的项目建议在根项目的build.gradle中配置(便于维护管理)

四、Gradle项目自动化测试

1、测试配置

dependencies {//统一配置了项目中的junit
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

2、测试任务原理流程

对Java源代码处理->对测试源代码处理->校验、构建

3、测试发现需要满足的条件

  • 任何继承 junit.framework.TestCase 或 groovy.utilGroovyTestCase 的类

  • 任何被 @RunWith 注解的类

  • 任何至少包含一个被 @Test 注解的类

五、Gradle项目的发布

1、流程图

2、添加发布插件和配置参数

apply plugin: 'maven-publish'//添加插件
publishing{//配置参数
    publications{
        myPublish(MavenPublication){//myPublish是我们自定义的名称
            from components.java//把java产生的输出发布到仓库
        }
    }
    repositories{
        maven{
            name "myRepo"//名称自定义
            url ""//私服地址
        }
    }
}

3、运行任务进行发布

猜你喜欢

转载自blog.csdn.net/m0_64420071/article/details/124299650