Gradle基本操作入手
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基本操作入手的更多相关文章
- C# 数据操作系列 - 1. SQL基础操作
0.前言 前篇介绍了一些数据库的基本概念和以及一些常见的数据库,让我们对数据库有了一个初步的认识.这一篇我们将继续为C#数据操作的基础填上一个空白-SQL语句. SQL(Structured Quer ...
- Gradle安装使用以及基本操作
这两天看到越来越多的在接触Gradle,然后发现我之前没有做过记录,而且之后下个月的一些有关SpringBoot的东西也需要用到,所以这里就来记录一下,方便以后使用. 简单介绍 Gradle是一个好用 ...
- Gradle安装和在IDEA使用 基本操作
阅读目录 简单介绍 安装 使用idea创建一个web的Gradle项目 如何进行打包 解释build.gradle和settings.gradle 有关gradle的jar冲突 本地jar包位置和修改 ...
- gradle学习笔记(1)
1. 安装 (1) 下载最新gradle压缩包,解压到某处.地址是:Gradle web site: (2) 添加环境变量: 1) 变量名:GRADLE_HOM ...
- Gradle 的下载安装配置以及创建第一个Gradle 项目
1. 什么是Gradle? Gradle是一个开源的构建自动化工具,专注于灵活性和性能. Gradle构建脚本使用Groovy或Kotlin DSL编写. 阅读Gradle功能,了解Gradle的功能 ...
- elk系列1之入门安装与基本操作【转】
preface 我们每天都要查看服务器的日志,一方面是为了开发的同事翻找日志,另一方面是巡检服务器查看日志,而随着服务器数量以及越来越多的业务上线,日志越来越多,人肉运维相当痛苦了,此时,参考现在非常 ...
- 从源码入手,一文带你读懂Spring AOP面向切面编程
之前<零基础带你看Spring源码--IOC控制反转>详细讲了Spring容器的初始化和加载的原理,后面<你真的完全了解Java动态代理吗?看这篇就够了>介绍了下JDK的动态代 ...
- CodeIgniter框架——创建一个简单的Web站点(include MySQL基本操作)
目标 使用 CodeIgniter 创建一个简单的 Web 站点.该站点将有一个主页,显示一些宣传文本和一个表单,该表单将发布到数据库表中. 按照 CodeIgniter 的术语,可将这些需求转换为以 ...
- Gradle——创建简单的项目
项目 & 任务 Gradle 的一切都是基于项目和任务的. 构建由一个或多个项目组成.项目的概念很抽象,它取决于你要用Gradle 做什么 .项目可以是 一个 Jar 库或者一个 web 程序 ...
随机推荐
- 关于set的unordered特性
关于set排序无序的问题,原因是set使用哈希表做内存索引. 详细介绍可见: https://stackoverflow.com/questions/12165200/order-of-unorder ...
- 微信小程序注册使用流程
新开发微信小程序使用流程: 平时使用小程序较多,但是具体注册流程简单记录下: 第一步:通过邮箱注册 第二步:在邮箱进行激活 注册后,在邮箱会收到激活信息提示.点击激活地址进行激活. 第三步:信息登记 ...
- vue 获取当前元素
获取当前元素 Html: <li><a href="#" v-on:click="typeStyle">萨克斯萨克<span> ...
- Hibernate命名策略
hibernate的命名策略,可以减少对数据库标识符命名的维护,进一步减少这部份命名的重复性代码量,以提高维护. hibernate的命名方式,有两类,一类是显式命名,一类是隐式命名. 显式命名:在映 ...
- 如何让 J2Cache 在多种编程语言环境中使用
现在的系统是越来越复杂了,不仅仅是功能复杂,系统结构也非常复杂,而且经常在一个系统里包含几种不同语言编写的子系统.例如用 JavaScript 做前端开发.用 Java/PHP 等等做后端,C/C++ ...
- BZOJ2982: combination Lucas模板
2982: combination Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 734 Solved: 437[Submit][Status][Di ...
- NoClassDefFoundError: Could not initialize class org.apache.cxf.jaxrs.provider.ProviderFactory org.springframework.aop.support.AopUtils.isCglibProxyClass
报错: 2018-05-03 10:35:20 377 ERROR org.apache.juli.logging.DirectJDKLog.log:181 - Servlet.service() f ...
- Laravel 日志权限问题
laravel发现日志写入不了, 因为此日志是定时任务生成的, 定时任务的执行用户时root 解决方法: 方法1.修改执行定时任务的用户, 不过www用户时无法登陆的, 可能有点麻烦 方法2.修改la ...
- 修改代码150万行!与 Blink 合并后的 Apache Flink 1.9.0 究竟有哪些重大变更?
8月22日,Apache Flink 1.9.0 正式发布,早在今年1月,阿里便宣布将内部过去几年打磨的大数据处理引擎Blink进行开源并向 Apache Flink 贡献代码.当前 Flink 1. ...
- [转]IE userData
IE浏览器实现了它专属的客户端存储机制——“userData”.userData可以实现一定量的字符串数据存储,可以将其用做是Web存储的替代方案.本文将详细介绍IE userData 概述 在IE5 ...