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. window环境下Python+OpenCV配置

    最近开始学习OpenCV来进行计算机视觉实验,选择了Python作为实验语言,工欲善其事,必先利其器.先总结下安装配置. 现在opencv目测只支持Python2.7X版本的,还依赖于numpy和ma ...

  2. Ubuntu 14.04 Ruby 2.3.3 安装

    在Ubuntu 14.04通过下载Ruby源码包进行安装. 第一步,更新apt-get sudo apt-get update 通过apt-get安装ruby依赖 sudo apt-get insta ...

  3. P1009阶乘之和

    n=int(input()) ans=0 for i in range(1,n+1): t=1 for j in range(1,i+1): t*=j; ans+=t; print(ans)

  4. tDQSS

    tDQSS - DQS latching rising transitions to associated clock edges, as described on Table 41/42 of JE ...

  5. 廖雪峰Java10加密与安全-3摘要算法-5Hmac

    1 比较MD5和HamcMD5 HmacMD5可以看作带安全salt的MD5 import javax.crypto.KeyGenerator; import javax.crypto.Mac; im ...

  6. 在ubuntu中安装phpstorm

    安装参考网址 https://blog.csdn.net/mrgong_/article/details/77200225 注意:不需要安装java相关 激活phpstorm 2018 参考网址:ht ...

  7. spring cloud深入学习(十一)-----服务网关zuul

    前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个 ...

  8. x86架构:x86架构

    ylbtech-x86架构:x86架构 X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令 ...

  9. PAT甲级——A1024 Palindromic Number

    A number that will be the same when it is written forwards or backwards is known as a Palindromic Nu ...

  10. DVWA 之low级别sql注入

    将Security level设为low,在左侧列表中选择“SQL Injection”,然后在右侧的“User ID”文本框中输入不同的数字就会显示相应的用户信息. 我们首先需要判断这里所传输的参数 ...