12-Gradle idea 结合使用

1、在 idea 中创建普通 java工程

  • 第一步:创建由 Gradle 管理的项目
    1659345702423

  • 第二步:修改当前项目使用本地安装的 gradle:可以加快下载项目依赖 jar 包的速度【配置了私服地址】。
    1659345737584

特别提示 1: 在 Terminal 中执行以 gradlew 开头命令和操作图形化的 IDEA 使用 Gradle 版本不一定是同一个版本哦。

  1. Terminal 中以 gradlew 开头指令用的是 Wrapper 规定的 gradle 版本,wrapper 中规定版本默认和 idea 插件中规定的版本一致。
  2. 图形化的 IDEA 使用 Gradle 是本地安装的哦。

特别提示 2: 目前只能是在创建项目时重新设置本地 gradle,创建新项目需要重新去改。

特别提示 3: 当我们在 gradle.build 文件添加依赖之后,这些依赖会在下载到 GRADLE_USER_HOME/caches/modules-2/files-2.1 目录下面,所以这里的 GRADLE_USER_HOME 相当于 Gradle 的本地仓库,当然也可以如下方式找到 jar 包位置。
1659345869604

2、在idea中创建web工程

在 idea 新版本的创建项目中,无法自己选择创建项目是普通 java 工程还是 web 工程了【IDEA 旧版本是可以的】,所以我们如果想创建 web 工程,只需要自己在 src/main/ 目录下添加 webapp/WEB-INF/web.xml 及页面即可。

在 gradle 文件中需要用到 Groovy 语法。

3、项目部署

当我们将一个 java 项目打成 war 包之后,就需要部署到服务器运行,这里有两种方式:

  • 我们将项目打成 war 包,部署到本地 tomcat 运行
  • 使用 Gretty 插件中内置服务器方式部署项目

3.1、Gretty部署项目

Gretty 是一个功能丰富的 gradle 插件,用于在嵌入的 servlet 容器上运行 web 应用程序,让项目开发和部署更加简单。

目前 Gretty 插件已经作为 gradle 的核心库使用了,Gretty 其核心功能为:

  1. 底层支持 jetty, tomcat 等 Servlet 容器
  2. 支持项目热部署、HTTPS、调试

Gretty 官网地址

3.2、具体使用

第一步:引入 Gretty 插件

1
2
3
4
plugins {
id 'war'
id 'org.gretty' version '2.2.0'
}

第二步:指定 maven 仓库

1
2
3
4
5
repositories {
//指定jcenter仓库,一定要放在前面
jcenter()
mavenCentral()
}

第三步:针对 Gretty 插件的设置

1
2
3
4
5
6
7
8
9
10
gretty {
httpPort = 8888
contextPath = "/web"
debugPort = 5005 // default
debugSuspend = true // default
httpsEnabled = true
managedClassReload=true //修改了类之后重新加载
//servletContainer = 'tomcat8' //如果不指定默认的servlet容器,支持tomcat7/8,默认是使用的Jetty服务器
httpsPort = 4431
}

第四步:执行 Gretty 插件

1
gradle appRun

进一步了解的属性配置,比如 Gretty 热部署等设置,参考

4、Gradle 对测试支持

测试任务自动检测并执行测试源集中的所有单元测试。测试执行完成后会生成一个报告。支持 JUnit 和 TestNG 测试。

4.1、默认测试目录及标准输出

1659346267093

4.2、Junit使用

Gradle 对于 Junit4.x 支持

1
2
3
4
5
6
dependencies {
testImplementation group: 'junit' ,name: 'junit', version: '4.12'
}
test {
useJUnit()
}

Gradle 对于 Junit5.x 版本支持

1
2
3
4
5
6
7
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}
test {
useJUnitPlatform()
}

注意:无论是 Junt4.x 版本还是 Junit5.x 版本,我们只需在 build.gradle 目录下执行 gradle test 指令,gradle 就会帮我们执行所有的加了 @Test 注解的测试,并生成测试报告。

4.3、包含和排除特定测试

1
2
3
4
5
6
test {
enabled true
useJUnit()
include 'com/**'
exclude 'com/abc/**'
}

gradle 在 junit 中的批量测试,可以设置包含或者排除某些特定测试。


12-Gradle idea 结合使用
https://flepeng.github.io/021-Java-13-Gradle-12-Gradle-idea-结合使用/
作者
Lepeng
发布于
2024年4月7日
许可协议