首页 > 代码库 > Gradle(一)——初识

Gradle(一)——初识

Gradle(一)——初识

1. 综述

Gradle 是像 Maven 一样的版本控制软件,它使用 Groovy 代替 Maven 的 XML 配置,代码更简洁,也更灵活。官方文档:docs.gradle.org

 

2. 安装

从官网下载 zip 包,解压,设置环境变量 GRADLE_HOME,值为解压目录,再将 %GRADLE_HOME%\bin 目录加入 path。

在 terminal 里运行

gradle -v

输出版本信息,则安装成功。

2.1 一个小问题

我虽然按照上面的正确步骤操作了,但还是提示找不到 gradle 这个目录命令。这可以理解,可能是虽然在 path 里加入了 gradle 命令所在的文件夹 %GRADLE_HOME%\bin,但可能缓存还没更新,准备想办法更新缓存。但是当我把 Maven 的 %MAVEN_HOME%\bin 从 path 里删除之后,运行 gradle -v 就可以输出版本信息了…可能是这段时间缓存更新了,好巧…

 

3. 使用

gradle 默认从 projectname\main\java 里获得项目源码,从 projectname\test\java 获得测试类。

3.1 命令

输出所有可执行的 tasks:

gradle tasks

 

执行某个task:

gradle [task-name]

 

构建程序:(会在 build\lib 目录下生成 jar 包)

gradle build

 

运行构建成功的程序:(也可以直接用 java -jar 运行 build\lib 目录下生成的 jar 包)

gradle bootRun

 

清楚 build 的结果:

gradle clean

 

常常这么用来构建运行一个程序,依次执行:

gradle clean
gradle build
gradle bootRun

 

3.2 build.gradle

实例及注释:

apply plugin: ‘java‘    // 加入 Java 插件
apply plugin: ‘idea‘    //

repositories {
    mavenCentral();    // 使用 Maven 仓库     
}

dependencies {
    compile ‘org.springframework.boot:spring-boot-starter-data-jpa‘    // 编译 main 时需要的依赖
    runtime ‘mysql:mysql-connector-java‘    // 运行时动态生成类需要的依赖
    
    testCompile ‘‘    // 测试 main 时需要的依赖
    testRuntime ‘‘    // 测试时动态生成类需要的依赖
}

task hello {
    println ‘Hello world‘
}

build.gradle 中使用的是 Groovy 脚本。

build.gradle基本组成是 task。使用 gradle 就是在执行一个一个的 task 。

apply plugin 本质是增加了新的 task,或者增加了某个 task 所做的事。

repositories 和 dependencies 共同解决了依赖的问题。

 

4. 说碰到的一个问题

在 Intellij IDEA 中,build 完之后,可以通过 gradle bootRun 运行 Application,也可以直接在 terminal 里用 java -jar 执行 build 出的 jar 包,都可以成功运行。

但是在 IDEA 里直接 shift + F10 运行 Application 就会失败,错误信息

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘entityManagerFactory‘ defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

 

Gradle(一)——初识