gradle基础
来源:互联网 发布:网络共享盘打不开 编辑:程序博客网 时间:2024/06/06 19:52
1、什么是gradle?
Gradle是基于JVM构建工具的新一代版本,它借鉴了现有的构建工具Ant和Maven里很多经验。像Ant和Maven这样的构建工具使用XML来定义它们的构建逻辑。XML容易读和写,但是如果逻辑很复杂,内容太多,XML就不容易维护了。gradle应用强大的Groovy语言而不是xml来编写构建脚本,同时提供了Java语法糖,它允许用很多程序员很熟悉的Java语言来编写定制逻辑。
Gradle遵循基于约定的构建方式。对于一个Java项目,gradle已经提供了默认的有意义的任务。例如,你可以编译Java源代码,运行测试和组装jar文件。每个Java项目都以一个标准的目录布局开始。它定义了在哪里可以找到源代码、资源文件和测试代码。同时,可以通过约定属性来改变它们的默认值。gradle称这个概念为约定构建。构建脚本的开发人员并不需要知道它是怎么工作的。相反,你能够完全把精力集中在什么需要配置上。gradle的约定和maven很相似,但不会让你感觉到被限制。maven非常武断,它建议一个工程只包含一个Java源代码目录且只产生一个jar文件,这对许多企业级的项目不一定合适。而ant不提供任何关于如何构建脚本方面的指导,以确保最大的灵活性。gradle则折中选择,既提供约定,又给予你改变这种约定的能力。
和其它工具的集成。gradle可以和ant、maven和ivy很好的集成。如果你是ant的使用者,gradle并不强制你完全迁移构建基础设施。相反,它允许你导入现有的构建逻辑并重用标准的ant任务。gradle和maven几ivy仓库100%兼容。你可以从中获取依赖,也可以发布代码。对已有的maven构建gradle提供一个转换器可以将maven构建逻辑转换为gradle的构建脚本。
2、开始使用gradle。
每个gradle构建都是以一个脚本开始的。gradle构建脚本默认的名字是build.gradle。如果想要实现经典的hello world例子,可以在build.gradle里定义一个独立的原子性操作task。
task helloWorld { doLast { println 'Hello world' }}<span style="font-family: Arial, Helvetica, sans-serif;"> </span>运行该task:
gradle -q helloWorld列出项目中所有可用的task:
gradle -q tasks命令行选项 --offline:通常,构建中声明的依赖必须在离线仓库中才可以使用。如果这些依赖在本地仓库中没有,同时又运行在一个没有网络的环境下,那么构建会失败。使用这个选项可以让你在离线模式下运行构建,仅仅检查在本地缓存中依赖是否存在。
参数传递:
-D, --system-propgradle是在jvm进程运行的。和所有Java进程一样,可以提供一个系统参数,就像 -Dmyprop=myvalue 这样。
-P, --project-prop可以使用这个选项直接向构建脚本中传入参数,就像 -Pmyprop=myvalue 这样。
使用插件:gradle插件通过引入特定的约定和任务来自动化执行编译Java源代码,打包生成jar文件,上传文件至代码库或自动部署等操作。例如,Java插件可以为你的项目建立一个标准的布局,并保证有意义的任务,有顺序的执行。
apply plugin: ‘java’一行代码足够构建你的Java代码,但是gradle是怎么知道去哪里去寻找源文件呢?Java插件引入的约定之一就是源代码的位置。在默认情况下,插件回到src/main/java目录下去查找。然后你就可以构建项目了,运行build命令,应该会得到以下的输出:
gradle build:compileJava:processResources UP-TO-DATE:classess:jar:assemble:compileTestJava UP-TO-DATE:processTestResources UP-TO-DATE:testClassess UP-TO-DATE:test:check:build每一行输出都代表Java插件提供的一个可执行任务。UP-TO-DATE代表这个任务被跳过了,因为gradle会自动鉴别不需要执行的任务。
定义仓库:
配置和使用外部依赖,在Java世界,依赖大部分是以jar文件的形式发布和使用的。许多类库都可以在仓库中找到,仓库可以是一个文件系统或者是一个中心服务器。下面是配置对maven central 2 仓库 http://repol.maven.org/maven2访问的快捷方式:
repositories{ mavenCentral()}定义依赖:
一个依赖是通过group标识符、名字和一个指定版本来确定的。如下:
dependencies{ compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'}如何查找依赖:
在maven central里查找依赖的最直接的方式是访问: http://search.maven.org/。
包的发布:
二进制包非常适合存储在二进制仓库里,如JFrong Artifactory和Sonatype Nexus非常适合于存储二进制包JAR、WAR和ZIP,其中最出名的二进制仓库是Maven Central。在包的发布过程中一个非常重要的步骤是为这些包产生基本信息。基本信息通常以XML文件存储,能够包含足够的关于对应的包的信息。如:包的名字、版本、描述以及源代码和文档的链接等,gradle可以帮助生成这些信息。最常用的仓库是基于maven和ivy的。而发布到maven仓库主要有以下三种情况:1,位于<USER_HOME>/.m2/repository目录下的本地缓存。2、本地文件系统下的仓库。3、通过HTTP(S)可以访问的远程二进制仓库。
基于安全和稳定性考虑,企业项目不应该依赖于maven central作为主要的依赖管理源仓库。有系列内部仓库产品可以使用,如Sonatype Nexus和JFrog Artifactory。
gradle项目通过应用一个特殊的插件能够在执行assemble task的时候预配置生成一个主要的输出包。如下将jar组件发布到位于<USER_HOME>/.m2/repository的maven仓库中:
apply plugin: 'maven-publish'publishing { publications { plugin(MavenPublication){ from components.java artifactId 'mycompany-plugin' } }}为了想要将包发布到远程仓库下,可以选用最流行的公共仓库JFrog Binary的JCenter和Maven Central。在发布之前可以阅读它们的官方网站,注册账号,了解发布时需要提供的具体信息和格式等要求。
0 0
- Gradle基础--认识Gradle
- gradle基础
- Gradle基础
- gradle基础
- gradle基础
- Gradle基础
- Gradle基础
- Gradle 基础
- Gradle基础
- Gradle基础
- gradle 基础
- Gradle基础
- GRADLE基础
- Gradle基础
- Gradle基础
- gradle基础
- Gradle基础
- Gradle基础
- 树懒_移动开学笔记_day41_安全卫士_进程管理
- IOS9 xcode7 You must rebuild it with bitcode enabled
- ZOJ 1002 Fire Net
- 以圆桌骑士为例浅尝HTML5游戏开发
- django 1.8 官方文档翻译:6-6-5 错误报告
- gradle基础
- 学习Java总结之一
- testlink第一次测试导出报告
- 树懒_移动开学笔记_day42&day43_安全卫士_看门狗_签名
- 《软件测试》学习笔记
- 抽象类和接口
- 浅析mysql、sql server和oracle的区别
- 两端的世界
- 软件测试的烦恼