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]