gradle学习笔记二:使用Gradle构建Java应用程序

前言

首先,我也是一个Gradle小白,目前所了解到的Gradel是个自动化构建工具,可以帮助我们自动管理依赖,编译、打包程序。至于它的优缺点以及工作流程并不是很熟悉。正是因为如此,才需要系统的学习gradle。个人认为一个技术或者一个框架,如果经常使用它,系统的去学习是最快掌握它的方法。

本篇是根据官网的教程 Building Java Applications整理而来,主要是知道Gradle的一下几个基本概念

  1. 如何使用Gradel创建一个Java应用程序
  2. 了解内置组件Build Init plugin
  3. 熟悉Gradel创建Java项目的基本结构
  4. 了解Gradel生成的文件的基本格式

使用Gradle构建Java应用程序

创建项目目录

mkdir demo-java-application
cd demo-java-application

执行init指令


gradle init

Select type of project to generate:
  1: basic
  2: application
  3: library
  4: Gradle plugin
Enter selection (default: basic) [1..4] 2

Select implementation language:
  1: C++
  2: Groovy
  3: Java
  4: Kotlin
  5: Swift
Enter selection (default: Java) [1..5] 3

Select build script DSL:
  1: Groovy
  2: Kotlin
Enter selection (default: Groovy) [1..2] 1

Select test framework:
  1: JUnit 4
  2: TestNG
  3: Spock
  4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4] 1

Project name (default: demo-java-application):
Source package (default: demo.java.application): com.demo.gradle.application

> Task :init
Get more help with your project: https://docs.gradle.org/6.3/userguide/tutorial_java_projects.html

BUILD SUCCESSFUL in 41s
2 actionable tasks: 1 executed, 1 up-to-date

这里对Gradle Init plugin做一个介绍。init 指令是Gradle Init plugin内置的一个指令,用来创建不同类型的Gradle应用程序,比如java,C++,Grovvy等等,还可以将maven构建的程序转换为gradle构建。同时它还调用了wrapper指令生成了Gradle Wrapper文件(对于Gradle Wrapper文件后续了解)。

目录结构

├── build.gradle
├── gradle    
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
    ├── main
    │   ├── java  
    │   │   └── demo
    │   │       └── App.java
    │   └── resources
    └── test      
        ├── java
        │   └── demo
        │       └── AppTest.java
        └── resources

如果知道maven,可以看到和maven的基本格式一致,只不过多了一些gradel的配置文件

文件格式概览

settings.gradle
rootProject.name = 'demo-java-application'

是一个非常重要的配置,只是标记了项目名称,个人理解可能在多模块项目中起到根目录的作用,暂时忽略其意义。

build.gradle
plugins {
    id 'java'
    id 'application'
}

repositories {
    jcenter()
}

dependencies {
    implementation 'com.google.guava:guava:28.2-jre'

    testImplementation 'junit:junit:4.12'
}

application {
    mainClassName = 'com.demo.gradle.application.App'
}

这是gradel构建的核心配置文件,里面包含了插件配置,仓库配置,依赖管理还有项目配置等信息。本篇只做简单了解,因为我也不会。如果类比Maven的话,应该是pom.xml

执行构建命令

./gradlew build
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes
> Task :jar
> Task :startScripts
> Task :distTar
> Task :distZip
> Task :assemble
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test
> Task :check
> Task :build

BUILD SUCCESSFUL
7 actionable tasks: 7 executed

构建完成后多了一个build文件夹

查看测试报告

gradle会自动执行单测类,并且以htlm的方式给出了测试报告,报告存放在build/reports/tests/test/index.html

gradle学习笔记二:使用Gradle构建Java应用程序_第1张图片

运行程序

gradel自带了run命令用来执行程序,入口类就是配置中的build.gradle–>application->mainClassName

./gradlew run

> Task :run
Hello world.

BUILD SUCCESSFUL in 1s
2 actionable tasks: 1 executed, 1 up-to-date

总结

这就是使用Gradel构建一个java应用程序的完整流程,当然工作中肯定不会这么使用。但是实际操作一遍有助于我们了解Gradle的执行流程以及它的基本概念。

所以从这篇文章我们可以了解到

  1. 如何使用Gradle创建Java应用程序
  2. 知道使用Gradle创建的Java应用程序基本的目录结构和配置文件
  3. 如何使用Gradle构建Java应用程序和察看测试报告
  4. 使用Gradle执行java应用程序

你可能感兴趣的:(gradle,java,gradle,maven)