Gradle学习(十二)——Build Init插件

原创 2018年01月04日 17:01:16

转载请注明出处:http://blog.csdn.net/lastsweetop/article/details/78973048

Gradle的Build Init插件可以作为创建新Gradle项目的引导程序,它支持创建不同类型的全新项目,也可以把存在的项目转变为Gradle项目,比如Maven项目。

Gradle的插件在使用之前通常需要apply一下,但是Gradle的Build Init插件自动就被apply了,这意味着你不需要显示的apply它。你准备创建Gradle项目时只需要直接执行init任务就OK了,就可以直接使用这个插件,并不需要你创建一个build.gradle文件,然后去apply这个插件。

对于Wrapper插件的wrapper任务来说也是一样的,它也一样被默认apply了。

任务

这个插件为项目增加了两个任务:

任务名称 依赖 类型 描述
init wrapper InitBuild 生成Gradle项目
wrapper —— Wrapper 生成Gradle Wrapper文件

构建类型设置

init任务支持不同的构建类型,可以通过--type选项进行设置,比如创建java类库项目只需要执行gradle init --type java-library命令。

如果没有指定type,Gradle就会自己去推断创建什么类型,如果发现当前目录下有pom.xml文件,他就会创建pom类型,把现有的maven工程转换为Gradle工程。

如果无法推断类型他就会使用basic类型。所有的类型都会执行wrapper任务。

Build Init的类型

pom(Maven转换)

pom类型可以通过将pom转换成多个gradle文件,达到将maven构建转换成gradle构建的目的。只有在当前目录或者命令行通过-p指定的目录下存在可用的pom.xml文件,此类型才能起作用。当这个文件存在,那么pom就是可以推断的类型。

转换进程有以下特性:

  • 使用有效的POM和有效的设置(包括POM继承,依赖管理,属性等)
  • 支持单个项目构建和多项目构建
  • 支持和目录名不同的自定义模块名称
  • 生成通用的元数据-id,description和version
  • 如果需要可以apply的插件有maven,java和war
  • 支持必要的war和jar工程
  • 生成外部或者模块之间的依赖
  • 生成下载库,比如maven仓库
  • 调整java编译器的设置
  • 支持源代码和测试的packaging
  • 支持TestNG
  • 将Maven需要的插件从全局排除

java-application

java-application类型不能被推断,必须明确指定
它具有以下特性:

  • 使用java插件
  • 使用application插件来生成java实现的命令行程序
  • 使用jcenter依赖库
  • 使用JUnit测试
  • 为源代码生成惯例使用的本地目录
  • 如果不存在代码或者单元测试文件,则会生成简单的代码和单元测试文件

其他测试框架也可以通过--test-framework选项的参数被指定,使用其他测试框架的命令:

  • gradle init --type java-application --test-framework spock:使用Spock代替JUnit进行单元测试
  • gradle init --type java-application --test-framework testng:使用TestNG代替JUnit进行单元测试

java-library

java-library类型不能被推断,必须明确指定
它具有以下特性:

  • 使用java插件来生成java的jar
  • 使用jcenter依赖库
  • 使用JUnit测试
  • 为源代码生成惯例使用的本地目录
  • 如果不存在代码或者单元测试文件,则会生成简单的代码和单元测试文件

其他测试框架也可以通过--test-framework选项的参数被指定,使用其他测试框架的命令:

  • gradle init --type java-library --test-framework spock:使用Spock代替JUnit进行单元测试
  • gradle init --type java-library --test-framework testng:使用TestNG代替JUnit进行单元测试

scala-library

scala-library类型不能被推断,必须明确指定
它具有以下特性:

  • 使用scala插件来生成scala的jar
  • 使用jcenter依赖库
  • 使用Scala2.10
  • 使用ScalaTest测试
  • 为源代码生成惯例使用的本地目录
  • 如果不存在代码或者单元测试文件,则会生成简单的scala代码和关联的ScalaTest单元套件
  • 默认使用Zinc Scala编译器

groovy-library

groovy-library类型不能被推断,必须明确指定
它具有以下特性:

  • 使用groovy插件来生成groovy的jar
  • 使用jcenter依赖库
  • 使用Scala2.x
  • 使用Spock测试框架进行测试
  • 为源代码生成惯例使用的本地目录
  • 如果不存在代码或者单元测试文件,则会生成简单的Groovy代码和关联的Spock的specification

groovy-application

groovy-application类型不能被推断,必须明确指定
它具有以下特性:

  • 使用groovy插件
  • 使用application生成Groovy的命令行程序
  • 使用jcenter依赖库
  • 使用Scala2.x
  • 使用Spock测试框架进行测试
  • 为源代码生成惯例使用的本地目录
  • 如果不存在代码或者单元测试文件,则会生成简单的Groovy代码和关联的Spock的specification

basic

basic类型被用于创建一个新的Gradle项目,它会创建带有一些注释和帮助链接的build.gradle文件。

当没有明确指定类型,而且无法推断具体类型时,basic类型就会被使用

版权声明:本文为博主原创文章,未经博主允许不得转载。

Gradle 1.12用户指南翻译——第四十七章. Build Init 插件

第四十七章. Build Init 插件 Build Init 插件目前仍然是孵化状态。请务必注意,在以后的 Gradle 版本中,相关的 DSL 和其他配置可能会有所改变。 Gradle Build...
  • maosidiaoxian
  • maosidiaoxian
  • 2016年05月26日 09:18
  • 4306

写 Gradle 插件的一点经验

本着简单易用的原则,参考 android-resource-remover 写了一个删除无用资源文件的 Gradle 插件 - clean-unused-resources-gradle-plugin...
  • FeeLang
  • FeeLang
  • 2016年09月23日 13:19
  • 1259

Android Studio更新后Gradle Build/Refresh失败的问题解决方案

Gradle介绍:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种...
  • DeMonliuhui
  • DeMonliuhui
  • 2017年03月13日 16:13
  • 2438

在AndroidStudio中自定义Gradle插件

一直都想好好学习AndroidStudio中的gradle,总感觉不懂如何在AndroidStudio中自定义gradle插件的程序员就不是个好程序员,这次上网查了一下相关资料,做了一个总结~...
  • huachao1001
  • huachao1001
  • 2016年07月02日 14:17
  • 8275

AndroidStudio编译时卡在Gradle Build Running并死机的解决方法

给Android Studio的gradle做了大量的优化配置后,有时候居然还会卡死!每次不愿意等就只能直接强制关机啊 一直显示这个画面Gradle Build Running,小圆圈也不转,再过一会...
  • zhuwentao2150
  • zhuwentao2150
  • 2016年04月16日 23:23
  • 9029

gradle学习(9)-获取build相关信息

(以下所有内容都是根据官方文档学习。如果你对gradle有兴趣,希望你能直接学习官方文档,官方文档是最权威的。而且这样才能产生2份有意义的学习资料)...
  • qhshiniba
  • qhshiniba
  • 2015年01月09日 21:44
  • 2965

Gradle中打jar包的方法,Gradle 自动化构建工具,Android Studio 中 Gradle 的使用方法,AndroidStudio使用过程中遇到的bug

不管是在Eclipse或是在IntelijIdea中,都有比较好的方法进行打包,但是在gradle时代,打JAR包就只好自己动手写脚本了。 如果,要打jar包,我们要清楚原理。 jar包其实就是把所...
  • baozilichao
  • baozilichao
  • 2016年10月17日 20:18
  • 1784

解决一直Gradle Build Running的问题

解决一直Gradle Build Running的问题
  • c524694492
  • c524694492
  • 2017年06月10日 20:13
  • 677

用gradle手动编译出android的简单的apk文件(gradle学习之路二)

随着gradle和AS占据了一大片江山,ADT和ant已经被排挤到角落了有木有,去github上搜索个开源代码都是清一色的xx.gradle,最头疼的是集成Google的功能的时候,还得先用AS下载编...
  • StrangeNightmare
  • StrangeNightmare
  • 2016年08月17日 18:12
  • 5437

入门系列6.1打包 - 详解的build.gradle

http://www.jianshu.com/p/7e3a69dbd20e 【Android的工作室】入门系列6.1打包 - 详解的build.gradle 字数1983年...
  • u011904605
  • u011904605
  • 2016年08月07日 21:23
  • 1944
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gradle学习(十二)——Build Init插件
举报原因:
原因补充:

(最多只允许输入30个字)