gradle项目开发环境搭建

缘起

最近看公司代码看到了使用gradle技术构建的项目. 原先就听说过与maven齐名的gradle, 但是安卓用的多, javaee用的少. 但是好奇心催促我学(qian)习(chang)一(zhe)把(zhi).

环境搭建

  1. 下载gradle-3.5.1, 传送门

  2. 解压存放. 我是直接放到d盘根路径下面.

  3. 配置环境变量, 我自定义名称GRADLE_HOME=D:\gradle-3.5.1,以及配置PATH环境变量

  4. 使用cmd执行 gradle -v 看到下面的版本信息方说明安装成功

  5. 类比maven, 我们希望gradle也有自己的本地仓库. 继续配置环境变量GRADLE_USER_HOME, 注意, 和上面的GRADLE_HOME名称可以自定义不同, 这里的名称是固定写法.

  6. 类比maven, 我们希望gradle可以使用阿里云的镜像仓库,而不是使用慢如龟的国外仓库. 所以我们配置%GRADLE_HOME%/init.d/init.gradle 文件, 如下

    1
    2
    3
    4
    5
    6
    7
    8
    allprojects {
    repositories {
    maven {
    name "aliyunmaven"
    url "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    }
    }

    诚然, 网上也有其他的方法使用阿里云的镜像,详见参考链接【1】

  7. 上面完成了gradle在本机的搭建,下面要配合我们的IDE(我的是eclipse-oxygen)安装gradle的插件. 具体步骤参见参考链接【2】

Hello World!

  1. 配置IDE的gradle

  2. eclipse中Ctrl+N快捷键新建项目, 选择新建的项目类型是gradle.

    然后一路next即可.

  3. 配置项目的build.gradle文件, 如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    // buildscript 代码块中脚本优先执行
    buildscript {

    // ext 用于定义动态属
    ext {
    springBootVersion = '1.4.3.RELEASE'
    }

    // 使用了 Maven 的中央仓库(你也可以指定其他仓库)
    repositories {
    mavenCentral()
    }

    // 依赖关系
    dependencies {
    // classpath 声明说明了在执行其余的脚本时,ClassLoader 可以使用这些依赖项
    classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
    }

    // 使用插件
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'org.springframework.boot'

    // 打包的类型为 jar,并指定了生成的打包的文件名称和版本
    jar {
    baseName = 'initializr-start'
    version = '0.0.1-SNAPSHOT'
    }

    // 指定编译 .java 文件的 JDK 版本
    sourceCompatibility = 1.8

    // 使用了 Maven 的中央仓库
    repositories {
    mavenCentral()
    }

    // 依赖关系
    dependencies {
    // 该依赖对于编译发行是必须的,注意, 写了这个的话, 后面打包打成的就是可执行jar包, 即依赖的jar包也都打进去了
    compile('org.springframework.boot:spring-boot-starter-web')
    // 该依赖对于编译测试是必须的,默认包含编译产品依赖和编译时依
    testCompile('org.springframework.boot:spring-boot-starter-test')
    }
  4. 右键项目–>Gradle–>Refresh Gradle Project, 类比于maven的从仓库中拉jar包. 我们可以看到

    可见, 之前配置的本地仓库GRADLE_USER_HOME起作用了. 而且gradle比maven做的好的地方是相应的源码包也都下载下来了.

  5. 按照springboot常规开发, 具体代码见后面的demo链接.

  6. 运行gradle项目有三种方式

    方式1 首先进到项目根路径使用

    1
    gradle build

    或者(还有一个gradlew, 和下面的gradlew.bat的区别就是前者是linux,后者是Windows,ps: gradlew和gradlew.bat 都是项目根路径下面的文件)

    1
    gradlew.bat build

    构建项目. 构建完毕之后, 项目根路径下面多了一个build目录, 里面有一个libs目录, 里面有一个initializr-start-0.0.1-SNAPSHOT.jar文件,该文件的命名由上面的build.gradle文件的jar节点给定. 有了runnable jar包, 则使用java -jar运行即可. 注意, 这里牵出了一个小问题

    gradle 和 gradlew 一样吗? 有什么区别?

    这个问题参见参考链接【3】,是我写的另一篇小短文简要叙述区别

    方式2 既然都在eclipse中了, 直接用运行Java Application的方式运行main方法所在类即可, 这个不多说

    方式3 使用spring boot gradle plugin插件的方式运行, 所幸的是springboot已经集成了该插件, 不需要我们额外配置什么. 同样进到项目根目录, 执行

    1
    gradle bootRun

    或者

    1
    gradlew bootRun

    即可将项目跑起来.

  7. 运行效果

参考链接

【1】https://blog.csdn.net/sanyuedexuanlv/article/details/78062595

【2】https://www.cnblogs.com/leilei0327/p/7054652.html

【3】https://yfsyfs.github.io/2019/02/06/gradle-build%E5%92%8Cgradlew-build%E7%9A%84%E5%8C%BA%E5%88%AB/

demo

https://github.com/yfsyfs/backend/tree/master/hello-world