分布式调度 eloquent loam算法测试 yii ios7 vue开发文档 河南普通话考试 进销存源码 jquery获取dom对象 oracle显示所有数据库 vm虚拟化引擎 当前时间减一天 hadoop组件 matlab区分大小写吗 idea格式化代码设置 重置hosts python面向对象 mysql临时表 python使用教程 python类和对象 python开发界面 python获取输入 java文件 java实例 java泛型 java获取当前月 java数组添加 java开发接口 javapattern java中class java数组 java比较字符串 java系统学习 xp画图工具 千元以下最好的手机 隐藏虚拟键 一键换系统 枪神传说辅助 方正兰亭字体下载 sim卡注册失败
当前位置: 首页 > 学习教程  > 编程语言

gradle使用

2021/1/13 20:11:20 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

gradle介绍 java的源码构建工具,大致经历了 ant -> maven -> gradle 这个过程,每一次进步,都是在解决之前的工具所带来的问题,简单来说: ant 功能虽然也很强大,但是过于灵活,规范性不足&…

gradle介绍

java的源码构建工具,大致经历了 ant -> maven -> gradle 这个过程,每一次进步,都是在解决之前的工具所带来的问题,简单来说:

  1. ant 功能虽然也很强大,但是过于灵活,规范性不足,对目录结构及build.xml没有默认约定 ,10个程序员做同样的项目,可能最终出来的10个项目,目录结构和build.xml都不相同,而且没有统一的依赖项管理。

  2. maven的出现,解决了规范的问题,也顺带解决了依赖项统一管理的问题,但是规范性又太强了,基本上可以认为是一种强规范,用久了之后,感觉灵活性显略不足,而且pom.xml采用xml结构,项目大了,xml就有些冗长。

  3. gradle则是综合了ant与maven的优点,吸收了ant中task的思想,然后把maven的目录规范及仓库思想也融合进来了,但是允许用户自由修改默认的规范(比如:源代码目录可以自己指定),另外配置文件采用groovy语言来书写(格式初看上去有点类似json,比较精减),注意:groovy是一门真正的【可编程】语言,而不是象css、html之类的标记性「符号」,所以从这个意义上讲,配置文件build.gradle本身就是一份源代码,这份源代码,最终交由gradle来处理执行,完成代码的构建工作。

gradle的发展速度之快,是ant 与 maven所不能比拟的,看下gradle官网的文档就能感受到了,一个新兴的工具文档如此之齐全,可见大家对它的认可程度。

gradle安装

下载压缩包,解压即可。

配置环境变量:

GRADLE_HOME:gradle安装路径,PATH中加入 %GRADLE_HOME%\bin;

GRADLE_USER_HOME:仓库路径

gradle命令

  • 帮助命令
    gradle --help

  • 查看版本
    gradle -v

  • 执行特定的任务
    gradle [taskName]

  • 构建
    gradle build

  • 跳过测试构建构建
    gradle build -x test

  • 继续执行任务而忽略前面失败的任务
    gradle build --continue

  • 试运行build
    gradle -m build

  • 产生build运行时间的报告
    gradle build --profile
    结果存储在build/report/profile目录,名称为build运行的时间。

  • 显示任务间的依赖关系
    gradlle tasks --all

  • 查看testCompile的依赖关系
    gradle -q dependencies --configuration testCompile

  • 清空所有编译、打包生成的文件(即:清空build目录)
    gradle clean

  • 使用指定的Gradle文件调用任务
    gradle -b [file_path] [task]

  • 使用指定的目录调用任务
    gradle -q -p [dir] helloWorld

  • Gradle的图形界面
    gradle --gui

Gradle的命令日志输出有ERROR(错误信息)、QUIET(重要信息)、WARNGING(警告信息)、LIFECYLE(进程信息)、 INFO(一般信息)、DEBUG (调试信息)一共6个级别。在执行Gradle任务是可以适时地调整信息输出等级,以方便地观看执行结果。

  • -q/–quit 启用重要信息级别,改级别下只会输出自己在命令行下打印的信息及错误信息。
  • -i/–info 会输出除DEBUG以外的所有信息。
  • -d/–dubug 会输出所有日志信息。
  • -s/–stacktrace 会输出详细的错误堆栈。

gradle问题

下载仓库慢

如果Gradle在编译的时候没有在本地仓库中发现依赖,就会从远程仓库中下载,默认的远程仓库为mavenCentral(),也就是http://repo1.maven.org/maven2/,但是往往访问速度特别慢,不翻墙经常会下载超时或者需要很长时间导致Build失败,因此,可以用国内的仓库代替:

  • 阿里的仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
  • OSChina的仓库地址:http://maven.oschina.net/content/groups/public/

修改单独项目

在项目的build.gradle文件中,修改repositories配置
由:

    repositories {
        mavenCentral()
    }

改为:

repositories {
        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
    }

或:

repositories {
        maven{ url 'http://maven.oschina.net/content/groups/public/'}
    }

这样就可以从国内的镜像中下载依赖,速度能提高不少

注意:

  • build.gradle文件里有两处repositories,都需要改掉
  • 阿里云的速度比较快,更稳定

更改所有项目

如果想一次更改所有的仓库地址,可以在USER_HOME/.gradle/(如C:\Users\hellowood\.gradle)文件夹下添加init.gradle文件来配置

  • init.gradle
allprojects{
    repositories {
        def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {
                    remove repo
                }
            }
        }
        
        maven {
            url REPOSITORY_URL
        }
    }
}

这样就可以在项目编译的时候从阿里的仓库中下载依赖了

  • init.build脚本可以参考 https://docs.gradle.org/current/userguide/init_scripts.htm

本文链接: http://www.dtmao.cc/news_show_600262.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?