1. 什么是Gradle

Gradle是一个项目构建工具,目前支持Java、Groovy、Kotlin、Scala。构建脚本使用Groovy或Kotlin,目前一般用Groovy。

2. Gradle的安装

  • macOS:brew install gradle
  • ArchLinux: pacman -S gradle
  • Windows: choco install gradle

3. Gradle常用命令

  • gradle gradle help Gradle的基本用法
  • gradle <task> 运行指定任务
  • gradle --version 查看Gradle、JVM的版本号
  • gradle --help 帮助,列出全部命令行选项
  • gradle tasks 列出当前可用的构建任务
  • gradle help --task <task> 指定任务的帮助信息

4. 创建Gradle项目

提示:先mkdir <myProject> && cd <myProject>。因为Gradle会以当前目录为项目根目录

  • gradle help --task init 查看init任务的帮助信息
  • gradle init 创建空Gradle项目
  • gradle init --type java-application 创建Java应用
  • gradle init --type java-library 创建Java库(无main函数)
  • gradle init --type java-application --dsl kotlin 创建Java应用,gradle脚本不用默认的groovy脚本,改用kotlin脚本。不建议使用,目前即使在Kotlin亲妈IntelliJ IDEA上,也没感觉在gradle构建脚本使用KTS(KotlinScript)有何优势。

5. Gradle常用任务

  • gradle help 帮助
  • gradle init 初始化项目(创建项目)
  • gradle clean 清理项目
  • gradle build 编译项目
  • gradle run 运行项目(不支持java-library类型的项目,没有application插件,也没有main方法)
  • gradle tasks 列出全部任务
  • gradle dependencies 列出项目依赖树
  • gradle jar 生成jar包(到build/libs目录下)

注意:gradle jar生成的jar包是不能直接运行的。需要配置Manifest。在build.gradle添加以下内容(替换为自己的Main-Class):

jar {
  manifest {
    attributes(
      'Class-Path': configurations.compile.collect { it.getName() }.join(' '),
      'Main-Class': 'App'
    )
  }
}

6. 跟Maven比较

坑多,踩得差不多了,就比Maven好用了

7. Lombok的配置

Lombok在Maven中加个依赖就行,在Gradle中比较麻烦,例子如下:

plugins {
    id 'io.franzbecker.gradle-lombok' version '1.14'
}

apply plugin: 'java'

dependencies {
    compile 'org.projectlombok:lombok'
}

repositories {
    mavenCentral()
}

需要一个依赖与一个插件

注意:在IDEA中,直接运行某main函数,lombok不工作,只能通过gradle rungradle bootRun(For SpringBoot)运行。在IDEA配合Maven项目时,则没有这个问题。不知是Gradle的锅还是IDEA的锅。

关键时候还是重启大法好,IDEA不应该有这么磨人的bug。重启IDEA,会提示开启注解处理。打勾(在Build->Compiler->AnnotationProcessors下),完成。

其他注意事项

  • macOS开启Charles代理的时候,Gradle默认会走代理,下载依赖的时候会因为证书问题下载失败。此时关闭代理,重开命令行窗口仍然不行,Gradle会提示连接代理服务器失败。应该是Gradle将代理配置保存到了全局。没找到配置文件,我试着删除~/.gradle,果然OK. 具体操作步骤:关闭Charles(确保系统的代理配置是空的)、新开命令行(确保不受代理环境变量影响),rm -rf ~/.gradle && gradle build 应该就好了。
  • 上一条的总结归纳:如果Gradle在关闭系统代理后,仍然走代理,此时rm -rf ~/.gradle删除Gradle的全局缓存即可(注意:缓存的jar包也全都会被删除!!!必要的话可以只保留jar包目录,删除其他缓存)

文章首发链接:https://baijifeilong.github.io/2018/06/27/gradle/

Gradle 大杂烩的更多相关文章

  1. Gradle配置APK自动签名完整流程

    转载请注明出处:http://www.cnblogs.com/LT5505/p/6256683.html 一.生成签名 1.命令行生成签名,输入命令keytool -genkey -v -keysto ...

  2. gradle学习笔记(1)

    1. 安装     (1) 下载最新gradle压缩包,解压到某处.地址是:Gradle web site:     (2) 添加环境变量:             1) 变量名:GRADLE_HOM ...

  3. Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  4. 解决 Could not find com.android.tools.build:gradle 问题

    今天拉同事最新的代码,编译时老是报如下错误: Error:Could not find com.android.tools.build:gradle:2.2.0.Searched in the fol ...

  5. React Native Android gradle下载慢问题解决

    很多人会遇到 初次运行 react-native run android的时候 gradle下载极慢,甚至会失败的问题 如下图 实际上这个问题好解决的 首先 把对应版本的gradle下载到本地任意一个 ...

  6. Android studio使用gradle动态构建APP(不同的包,不同的icon、label)

    最近有个需求,需要做两个功能相似的APP,大部分代码是一样的,只是界面不一样,以前要维护两套代码,比较麻烦,最近在网上找资料,发现可以用gradle使用同一套代码构建两个APP.下面介绍使用方法: 首 ...

  7. 对Maven、gradle、svn、spring 3.0 fragment、git的想法

    1.Maven Maven可以构建项目,采用pom方式配置主项目和其他需要引用的项目.同时可结合spring3.0的新特性web  fragment. 从现实出发,特别是对于管理不到位,程序员整体素质 ...

  8. 项目自动化建构工具gradle 入门1——输出helloWorld

    先来一个简单的例子,4个步骤: 1.进入D:\work\gradle\java 目录  ,您电脑没这目录? 那辛苦自己一级一级建立起来吧 新建文件build.gradle,文件内容是: apply p ...

  9. 用IntelliJ IDEA创建Gradle项目简单入门

    Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...

随机推荐

  1. [leetcode]83. Remove Duplicates from Sorted List有序链表去重

    Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1 ...

  2. C++ 实现分数的四则运算

    对分数求加减乘除,以及化简 #include<iostream> #include<math.h> using namespace std; struct Fraction{ ...

  3. angularJs, ui-grid 设置默认group, 及排序

  4. 开始Dev之路

    从今天开始,开启Dev的发展之路.

  5. C# WebService服务器搭建、发布、上线、调试

    C#  WebService服务器搭建.发布.上线.调试 1. WebService服务器搭建 开发环境选择VS2017版本 步骤1:打开VS,文件->新建 ->项目->ASP.NE ...

  6. java对PDF文档的各种操作

    https://www.cnblogs.com/h--d/p/6150320.html(仅以提醒,导航的作用)

  7. 几种String对象方法的区别

    1.在String对象方法中,发现.slice()方法和.substring()方法的作用几乎相同,都是根据起始索引返回截取得到的字符串.经过查阅资料和实测得到区别: 正常情况下索引都为正值,返回值为 ...

  8. Scanner 类的使用

    /* Scanner类的使用: 1.导类 2.创建对象 3.调用对应的方法获取数据 */ import java.util.Scanner;//导入Scanner类 public class IfDe ...

  9. Vuejs——(11)组件——slot内容分发

    版权声明:出处http://blog.csdn.net/qq20004604   目录(?)[+]   本篇资料来于官方文档: http://cn.vuejs.org/guide/components ...

  10. 使用 Resharper 快速做适配器

    如果需要做一个类的重写,需要重新写这个类的所有属性和函数,本文提供一个简单的方法让大家快速重写一个类的所有属性和函数. 在有 Resharper 之后,对一个比较长的类进行重构.例如有这个类 clas ...