Gradle入门:简介

Gradle是一种构建工具,可以使用基于Groovy编程语言的内部DSL替换基于XML的构建脚本。

最近它吸引了很多关注,这就是为什么我决定仔细研究一下。

这篇博客文章是我的Gradle教程的第一部分,它有两个目标:

  1. 帮助我们安装Gradle
  2. 描述它的一些基本概念,这有助于我们理解本教程的未来部分。

让我们从了解如何安装Gradle开始。

安装Gradle

如果使用Windows或Linux,则可以按照以下步骤安装Gradle:

  1. 从下载页面下载二进制文件 。
  2. 解压缩该zip文件,然后将GRADLE_HOME / bin目录添加到PATH环境变量中。

如果在安装过程中遇到问题, 请查阅官方安装指南 。

如果使用的是OS X,则可以使用Homebrew安装Gradle。 我们可以通过在命令提示符处运行以下命令来做到这一点:

brew install gradle

我们可以通过在命令提示符下运行gradle -v命令来验证Gradle是否正常工作。 如果Gradle正常运行,我们应该看到以下输出(Windows和Linux用户自然会看到一些不同的输出):

> gradle -v------------------------------------------------------------Gradle 1.12------------------------------------------------------------Build time:   2014-04-29 09:24:31 UTCBuild number: noneRevision:     a831fa866d46cbee94e61a09af15f9dd95987421Groovy:       1.8.6Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013Ivy:          2.2.0JVM:          1.8.0 (Oracle Corporation 25.0-b70)OS:           Mac OS X 10.9.3 x86_64

让我们快速看一下Gradle构建的基本概念。

Gradle构建简介

Gradle有两个基本概念:项目和任务。 这些概念的解释如下:

  • 项目要么是我们构建的(例如jar文件),要么是项目(将我们的应用程序部署到生产环境)。 一个项目包含一个或多个任务
  • 任务是执行我们的构建(例如,编译项目或运行测试)的原子单元工作。

那么,这些概念与Gradle构建有何关系? 好吧, 每个Gradle构建都包含一个或多个项目

这些概念之间的关系如下图所示:

gradlebuild

我们可以使用以下配置文件来配置Gradle构建:

  • Gradle构建脚本( build.gradle )指定一个项目及其任务。
  • Gradle属性文件( gradle.properties )用于配置构建的属性。
  • 在只有一个项目的构建中, Gradle设置文件( gradle.settings )是可选的。 如果我们的Gradle构建有多个项目,则必须执行此操作,因为它描述了哪些项目参与了我们的构建。 每个多项目构建都必须在项目层次结构的根项目中具有一个设置文件。

您可以通过阅读Gradle用户指南的第6章,获取有关Gradle构建脚本的更多信息。

让我们继续前进,了解如何使用Gradle插件向Gradle构建添加功能。

更简短的Gradle插件介绍

Gradle的设计理念是所有有用的功能都由Gradle插件提供。 Gradle插件可以:

  • 将新任务添加到项目。
  • 为添加的任务提供默认配置。 默认配置将新约定添加到项目中(例如,源代码文件的位置)。
  • 添加用于覆盖插件默认配置的新属性。
  • 向项目添加新的依赖项。

Gradle用户手册提供了标准Gradle插件列表 。

我们可以通过使用Gradle插件的名称或类型来应用Gradle插件(将插件添加到项目时使用此术语)。

通过将以下行添加到build.gradle文件中,我们可以按名称应用插件(插件的名称为foo ):

apply plugin: 'foo'

另一方面,如果要按类型应用插件(插件的类型为com.bar.foo ),则必须将以下行添加到build.gradle文件中:

apply plugin: 'com.bar.foo'

您可以通过阅读Gradle用户指南的21.1应用插件来获得有关应用插件的更多信息。

今天就这些。 让我们总结一下我们从此博客文章中学到的知识。

摘要

这篇博客文章教会了我们三件事:

  • 我们了解了如何安装Gradle。
  • 我们了解了Gradle构建的基本构建基块。
  • 我们知道如何使用Gradle插件向我们的构建添加功能。

本教程的下一部分描述了如何使用Gradle创建一个简单的Java项目。

翻译自: https://www.javacodegeeks.com/2014/06/getting-started-with-gradle-introduction.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS中的间歇(周期)调用setInterval()与超时(延迟)调用setTimeout()相关总结

超时调用需要使用window.setTimeout(code,millisec)方法 它接受两个参数:要执行的代码和以毫秒表示的时间(即在执行代码前需要等待多少毫秒)。其中第一个参数可以是一个包含JS代码的字符串(就和在eval()函数中使用的字符串一样&a…

损失函数_分类

通常机器学习每一个算法中都会有一个目标函数,算法的求解过程是通过对这个目标函数优化的过程。 在分类或者回归问题中,通常使用损失函数(代价函数)作为其目标函数。 损失函数用来评价模型的预测值和真实值不一样的程度&#xff0…

首页回顾功能

公司要弄一个首页回顾的功能,可以查看以往某个时间的首页。程序每天自动在上午和下午分别抓取一个页面,生成地址为http://xxx.com/review/channel20090715am.html 的形式。 这个功能用到了jQuery UI 的 datepicker日历插件,但是主要的还是通过…

多表关联更新字段

update jdjc_cy gset g.ypmc(select w.cymc from jdjc_spjdcy w where w.cydzjg.zj) where g.cydh020-JLSP14001转载于:https://www.cnblogs.com/zhuyeshen/p/10685220.html

使对易失性字段的操作原子化

总览 易失字段的预期行为是,它们在多线程应用程序中的行为应与在单线程应用程序中的行为相同。 禁止它们表现相同的方式,但不能保证它们表现相同的方式。 Java 5.0中的解决方案是使用AtomicXxxx类,但是这些类在内存(它们添加标头…

浏览器内核总结

一般来讲,浏览器分为外壳部分和渲染部分。外壳部分就是用户看得见摸得到的外观和操作界面;而渲染部分则包括了浏览器内核和JS引擎,其中JS引擎主要负责执行javascript语言实现网页上的动作,而内核则负责渲染网页,把数据变成用户可以…

SDHelper module加密系统解密

电脑上运行了SDHelper module,文档修改就会被加密,无法在别的电脑打开,工作中无意中发现的方法可以避开加密 1:可以通过打开文档并登录你的office,生成分享链接出去可以避免加密 2:本地起一个vue的项目&…

nehe教程混合这一节需要注意的两个地方

//glDepthFunc(GL_LESS); //glEnable(GL_DEPTH_TEST);///关掉深度测试,否则没效果,原因是后画的物体通不过测试,当然也就不能混合了 glDepthRange(0.0, 1.0); glClearDepth(1.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(0.0, 0.0, 0.0, …

Kubernetes CRD开发模式及源码实现深入剖析-Kubernetes商业环境实战

专注于大数据及容器云核心技术解密,可提供全栈的大数据云原生平台咨询方案,请持续关注本套博客。如有任何学术交流,可随时联系。留言请关注《数据云技术社区》公众号。 1 CRD资源扩展 CRD 即CustomResourceDefinition,是 kubernet…

禁止浏览器缓存

近期在改页面的时候看到了页面中有response.setHeader("Pragma","No-cache"); 这样的语句,不知道是做什么的,经查得知原来是禁止浏览器缓存的,现把Html,Asp,Php,Jsp4种语言禁止浏览器缓…

Spring @Transactional实际如何工作?

在本文中,我们将深入探讨Spring事务管理。 我们将讨论Transactional在Transactional如何真正工作。 其他即将发布的帖子将包括: 如何使用传播和隔离等功能 主要陷阱是什么以及如何避免它们 JPA和事务管理 重要的是要注意,JPA本身不提供任何…

python3-开发进阶-RESTful 软件架构风格

一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识&#x…

mysql卸载重装总是卡在starting server这一选项

因为自己不小心把msyql给下载了,重装了一个5.7版本的可是在安装时卡在starting server这一部分,运行不下去。重写卸载重装仍然不成功,还是卡在starting server.无法继续下面的安装,查看日志也没有报错信息。 问题分析:…

两款开源Web功能测试工具

参考自:http://www.ibm.com/developerworks/cn/web/wa-aj-testing/twill:官网:http://twill.idyll.org/安装:easy_install twill运行:twill-sh文档:http://twill.idyll.org/windmill安装:easy_install wind…

箭头函数与普通函数的区别

箭头函数: let fun () > {console.log(lalalala); } 普通函数: function fun() {console.log(lalla); } 箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种只包含一个表达式,连{ ... }和return…

前端基础-HTML标记语言

阅读目录 一、 HTML标签与文档结构二、 HTML标签详细语法与注意点三、 HTML中标签分类四、 HTML注释 一、 HTML标签与文档结构 HTML作为一门标记语言,是通过各种各样的标签来标记网页内容的。我们学习HTML主要就是学习的HTML标签。 那什么是标签呢? #…

cf1199解题报告

目录 cf1199解题报告ABCDEFcf1199解题报告 发一波水题。 A 模拟 #include <bits/stdc.h> #define ll long long using namespace std; const int _1e67; int n,x,y,a[_]; int main() {scanf("%d%d%d",&n,&x,&y);for(int i1;i<n;i) scanf("…

带有Gradle的Docker容器分为4个步骤

您是否需要通过Java Web应用程序创建Docker映像&#xff1f; 您在使用Gradle吗&#xff1f; 如果是这样&#xff0c;那么您距Docker nivana仅4步之遥。 对于此示例&#xff0c;我将使用一个简单的Spring Boot应用程序。 您可以在我的名为galoshe的Github存储库中找到所有源代码…

ImagesSprite V1.1.1 Beta发布

ImagesSprite v 1.1 发布后有网友提出样式显示了&#xff0c;但不能复制&#xff0c;现做调整如下&#xff08;20090804&#xff09;&#xff1a; 1.修正主界面下方css样式不能复制。 2.修正生成时透明色没有保存。【下载ImagesSprite V1.1.1 Beta】- 点击:4次转载于:https://w…

使用Spark构建简单的RESTful API

免责声明 &#xff1a;这篇文章是关于名为Spark的Java微型Web框架的&#xff0c;而不是关于数据处理引擎Apache Spark的 。 在此博客文章中&#xff0c;我们将看到如何使用Spark构建简单的Web服务。 如免责声明中所述&#xff0c;Spark是受Ruby框架Sinatra启发的Java微型Web框…