Gradle本身的领域对象主要由Project和Task。Project为Task提供了执行上下文,所有的Plugin要么向Project中添加用于配置Property,要么向Project中添加不同的Task。

一个Task表示一个逻辑上较为独立的执行过程。

一个Task可以读取和设置Project的Projecty以完成特定的操作。

定义一个Task时的默认类型,当然我们也可以显示声明Task的类型,甚至可以自定义一个Task类型。

task copyFile(type: Copy) {
from 'xml'
into 'destination'
}

声明Task依赖关系的一种方式是定义在一个Task的时候:

task taskA(dependsOn: taskB) {
//do something
}

查看Project中所有的Task:

gradle task

Gradle还默认为我们提供了dependencies、projects、properties等Task。

dependencies用户显示Project的依赖信息,projects用于显示所有Project,包括根Project和子Project,而properties则用于显示一个Project所包含的所有Property。

gradle properties

对于Gradle的构建进行配置:

Gradle构建脚本:build.gradle 制定一个项目和它的任务

Gradle属性文件:gradle.properties 用来配置构建属性

Gradle设置文件:settings.gradle 对于只有一个项目的构建而言是可选的,如果我们的构建中包含了多于一个项目,他就是必须的,描述了项目的之间的构造关系,每一个多项目构建都必须加入一个设置文件。

TASK任务实例

task hello{
println 'Hello 1'} hello.doFirst{
println 'doFirst 1'} hello.doFirst{
println 'doFirst 2'} hello.doLast{
println 'doLast 1'} hello.doLast{
println 'doLast 2'} hello << {
println ' use << put msg'}

TASK依赖

task hello <<{
println 'hello world'} task intro(dependsOn: hello) <<{
println "I'm Gradle"
}

Gradle插件

gradle build:编译整个项目,它会执行代码编译、代码检测和单元测试

gradle assemble:编译并打包你的代码,并不会运行代码检测和单元测试

gradle clean:删除build生成的目录和所有生成的文件

gradle check:编译并测试你的代码,其他的插件会加入更多的检查步骤,

外部依赖

一个Java项目将有多个外部的依赖,既可以指向外部的JAR文件,为了项目引用一些JAR文件,你需要告诉Gradle去哪里找他们,在Gradle中,JAR文件位于一个仓库中,这里的仓库类似于maven的仓库。

首先指定maven的仓库地址:

repositories {
mavenCentral()
}

mavenCentral()是Gradle内置的一个maven仓库地址,加入maven仓库后,就可以直接加入maven仓库中的外部依赖,如果这个外部依赖不存在,gradle会联网去maven仓库中自动下载它,并将他缓存到本地,下次在使用时会优先从本地缓存中查找该依赖。

dependencies {
complie group: 'commons-collections', name: 'commons-collections', version: '3.2'
}

本地依赖

Gradle也可以从本地目录中引入JAR包依赖,可以单一引入指定的某一JAR包,也可以引入某目录下所有JAR包,

dependencies {
compile files('dir/file.jar')
compile fileTree(dir:'libs',include: '*.jar')
}

项目依赖

主要是设置settings.gradle定义当前项目的依赖关系

include 'sub-project1', 'sub-project2', 'sub-project3'

如果su-project1依赖sub-projcet2,则在sub-project1的build.gradle中加入以下配置即可:

dependencies {
compile project(':sub-project2')
}

依赖关系管理

依赖关系管理分为两个方面。

首先,gradle需要知道你要构建或者运行的项目,以便找到它们。我们将这些导入的文件视为项目的依赖。

第二,gradle需要构建或者打包你的项目产品。我们将这些导出的文件视为项目的发布。

apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
}

Gradle基本操作入手的更多相关文章

  1. C# 数据操作系列 - 1. SQL基础操作

    0.前言 前篇介绍了一些数据库的基本概念和以及一些常见的数据库,让我们对数据库有了一个初步的认识.这一篇我们将继续为C#数据操作的基础填上一个空白-SQL语句. SQL(Structured Quer ...

  2. Gradle安装使用以及基本操作

    这两天看到越来越多的在接触Gradle,然后发现我之前没有做过记录,而且之后下个月的一些有关SpringBoot的东西也需要用到,所以这里就来记录一下,方便以后使用. 简单介绍 Gradle是一个好用 ...

  3. Gradle安装和在IDEA使用 基本操作

    阅读目录 简单介绍 安装 使用idea创建一个web的Gradle项目 如何进行打包 解释build.gradle和settings.gradle 有关gradle的jar冲突 本地jar包位置和修改 ...

  4. gradle学习笔记(1)

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

  5. Gradle 的下载安装配置以及创建第一个Gradle 项目

    1. 什么是Gradle? Gradle是一个开源的构建自动化工具,专注于灵活性和性能. Gradle构建脚本使用Groovy或Kotlin DSL编写. 阅读Gradle功能,了解Gradle的功能 ...

  6. elk系列1之入门安装与基本操作【转】

    preface 我们每天都要查看服务器的日志,一方面是为了开发的同事翻找日志,另一方面是巡检服务器查看日志,而随着服务器数量以及越来越多的业务上线,日志越来越多,人肉运维相当痛苦了,此时,参考现在非常 ...

  7. 从源码入手,一文带你读懂Spring AOP面向切面编程

    之前<零基础带你看Spring源码--IOC控制反转>详细讲了Spring容器的初始化和加载的原理,后面<你真的完全了解Java动态代理吗?看这篇就够了>介绍了下JDK的动态代 ...

  8. CodeIgniter框架——创建一个简单的Web站点(include MySQL基本操作)

    目标 使用 CodeIgniter 创建一个简单的 Web 站点.该站点将有一个主页,显示一些宣传文本和一个表单,该表单将发布到数据库表中. 按照 CodeIgniter 的术语,可将这些需求转换为以 ...

  9. Gradle——创建简单的项目

    项目 & 任务 Gradle 的一切都是基于项目和任务的. 构建由一个或多个项目组成.项目的概念很抽象,它取决于你要用Gradle 做什么 .项目可以是 一个 Jar 库或者一个 web 程序 ...

随机推荐

  1. 【转载:java】详解java中的注解(Annotation)

    目录结构: contents structure [+] 什么是注解 为什么要使用注解 基本语法 4种基本元注解 重复注解 使用注解 运行时处理的注解 编译时处理的注解 1.什么是注解 用一个词就可以 ...

  2. 使用springboot上传文件至nginx代理服务器

    nginx配置图片服务器 server { listen 8001; server_name image.xxx.com; proxy_set_header X-Forwarded-Host $hos ...

  3. 第一章 使用开发者模式快速入门 Odoo 12

    本文为最好用的免费ERP系统Odoo 12开发手册系列文章第一篇. Odoo提供了一个快速应用开发框架,非常适合创建商业应用.这类应用通常用于保留业务记录,增删改查操作.Odoo 不仅简化了这类应用的 ...

  4. c语言一个例子对比php学习随记

    今天开始学写一些简单的C例子,发现很多和PHP不一样的地方,做个笔记. #include <stdio.h> int main(void) { int a,b; printf(" ...

  5. 组件:slot插槽

    <!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...

  6. maven项目mapper文件加载不到classpath问题解决方案

    在调试我的maven项目的过程种,当我执行maven install时总提示找不到mapper.xml文件,看了一下大家的说法,都说是maven没有把src/main/java下的mapper包记载到 ...

  7. RSA加密算法在WEB中的应用

    加密算法有很多,如不可逆的摘要算法MD5.SHA(安全哈希算法),可逆的Base64编码,对称加密算法DES.AES,还有非对称加密算法DH.RSA等.那是不是说明我们可以使用任何一种加密算法就能保证 ...

  8. Liferay 7:Liferay DXP解决方案

    分享是美德,欢迎探讨技术 这个作者很厉害呀,写的博客都是解决很刁钻问题的.强烈推荐 http://www.liferaysolution.com/2017/06/captcha-recaptcha-w ...

  9. 搭建单向HTTPS

    //参考网址:https://blog.csdn.net/haolipengzhanshen/article/details/51278262 //打开CMD窗口 cd C:\wamp\bin\apa ...

  10. Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---命令模式之RemoteControlTest[转]

      1   2{<HeadFirst设计模式>之命令模式 }   3{ 本单元中的类为命令的接收者      }   4{ 编译工具 :Delphi7.0         }   5{ 联 ...