Gradle基础:10:使用gradle init进行初始化

版权声明:本文为博主原创文章,未经博主允许欢迎转载,但请注明出处。 https://blog.csdn.net/liumiaocn/article/details/84232595

在这里插入图片描述
很多工具都有创建创建项目骨架的初期化的功能,比如前端框架的angular,使用它的cli可以快速创建一个包含接近30个文件的骨架能让你快速的搭建项目。maven在创建pom的时候也可以通过命令行交互的方式进行简化,而gradle则提供了gradle init来进行创建。

事前准备

只需要创建一个新的目录,这里的名称为init

liumiaocn:init liumiao$ ls
liumiaocn:init liumiao$

gradle init

使用gradle init即可创建一个gradle项目的骨架

liumiaocn:init liumiao$ gradle init

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
liumiaocn:init liumiao$

内容确认

文件说明

可以看到一共创建了2个目录和6个文件,其中2个目录和4个文件都跟wrapper有关:

  • gradlew:linux或者Unix下用于执行wrapper命令的Shell脚本
  • gradlew.bat:Windows下用于执行wrapper命令的批处理脚本
  • gradle-wrapper.jar:用于下载Gradle的相关代码实现
  • gradle-wrapper.properties:wrapper所使用的配置信息,比如gradle的版本等信息

详细的信息可参看前文的说明:

另外就是settings.gradle和build.gradle:

liumiaocn:init liumiao$ ls
build.gradle    gradle          gradlew         gradlew.bat     settings.gradle
liumiaocn:init liumiao$ tree
.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

2 directories, 6 files
liumiaocn:init liumiao$

内容确认

  • settings.gradle
    通过内容确认可以看到,settings.gradle中只设定了rootProject.name
liumiaocn:init liumiao$ cat settings.gradle 
/*
 * This file was generated by the Gradle 'init' task.
 *
 * The settings file is used to specify which projects to include in your build.
 * 
 * Detailed information about configuring a multi-project build in Gradle can be found
 * in the user guide at https://docs.gradle.org/4.10.2/userguide/multi_project_builds.html
 */

rootProject.name = 'init'
liumiaocn:init liumiao$ 
  • build.gradle
    而build.gradle则没有任何设定,只有注释,这也正是初始化的意义所在。
liumiaocn:init liumiao$ cat build.gradle 
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This is a general purpose Gradle build.
 * Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds/
 */
liumiaocn:init liumiao$

init & wrapper

init的任务是依赖于wrapper的,执行init的时候同时会执行wrapper,因为wrapper是gradle官方推荐的方式,自然在初始化的时候也会将wrapper集成进去。

使用wrapper

因为前面的文章已经为wrapper安装了gradle5,这里可以将其设定文件进行修改,这里也可以直接使用了

liumiaocn:init liumiao$ grep distributionUrl gradle/wrapper/gradle-wrapper.properties 
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
liumiaocn:init liumiao$ vi gradle/wrapper/gradle-wrapper.properties 
liumiaocn:init liumiao$ grep distributionUrl gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-rc-5-bin.zip
liumiaocn:init liumiao$ ./gradlew -v

------------------------------------------------------------
Gradle 5.0-rc-5
------------------------------------------------------------

Build time:   2018-11-22 19:58:45 UTC
Revision:     42e59c2484a49702234030881640aa8d8bfa6d43

Kotlin DSL:   1.0.4
Kotlin:       1.3.10
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_191 (Oracle Corporation 25.191-b12)
OS:           Mac OS X 10.14 x86_64

liumiaocn:init liumiao$

从这里就可以看到wrapper的使用场景,如果不同的项目和不同的gradle的版本进行组合,使用wrapper还是非常方便的。

总结

使用gradle init可以创建一个非常简单的gradle结构,虽然非常简单的一个功能,一点一滴地按照COC的思路则会更容易推进标准化的落地,也是值得思考的一个问题。

参考文章

https://guides.gradle.org/creating-new-gradle-builds/

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/84232595