关于Gradle - 1的注意事项
这是一篇关于使用 Gradle 构建 Java 应用程序的笔记。它将专注于构建单项目应用程序的简单情况。
背景
在我开始使用 Maven 后不久,我得知了 Gradle。我没有花太多时间在它上面,因为当时没有像样的 IDE 集成。但随着 Buildship 的出现,情况发生了变化。在这篇笔记中,我将使用 Eclipse 和 Buildship 来讲解如何创建和构建一个 Gradle Java 应用程序。为了让这篇笔记保持简单,我将只讨论单项目应用程序。如果我有时间,可能会准备一篇关于多项目应用程序的单独笔记。
在 Eclipse 中安装 Buildship
您可以按照 说明 在您的计算机上进行独立的 Gradle 安装。但如果您使用 Buildship 和 Eclipse,则无需在计算机上进行独立安装。您可以点击 **Eclipse** 菜单上的 **帮助 (Help)** -> **Eclipse Marketplace...**,然后搜索 **Buildship** 来找到 Buildship Gradle Integration 插件。
然后,您可以按照说明将 Buildship 安装到您的 Eclipse 中。安装完成后,您需要重启 Eclipse。
一个最小化的 Gradle 项目 & Gradle Wrapper
在 Buildship 安装完成后,您可以在 Eclipse 中创建一个 Gradle 项目。点击 **文件 (File)** -> **新建 (New)** -> **其他... (Other...)** -> **Gradle** -> **Gradle 项目 (Gradle Project)** 来启动 Gradle 项目向导。
当被询问 Gradle 发行版时,请确保选择 **Gradle wrapper**。
一路按照向导完成操作,我们就可以在 Eclipse 中拥有一个最小化的 Gradle 项目。
Gradle Wrapper
有很多 Gradle 版本可用。为了确保团队和构建服务器在有或没有本地 Gradle 安装的情况下使用相同版本的 Gradle 来构建项目,Gradle 团队推荐使用 Gradle Wrapper。Gradle Wrapper 包含四个文件,我们需要将它们提交到源代码控制中与团队共享。
- /gradle/wrapper/gradle-wrapper.js;
- /gradle/wrapper/gradle-wrapper.properties;
- gradlew;
- gradlew.bat.
gradle-wrapper.properties 文件告诉我们哪个版本的 Gradle 将用于构建项目。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-bin.zip
gradlew 和 gradlew.bat 是通过 Wrapper 发出 Gradle 命令的批处理文件。在 Linux 中,我们可以使用 gradlew。在 Windows 中,我们可以使用 gradlew.bat。如果您想更改 Wrapper 使用的 Gradle 版本,可以发出以下命令
gradlew wrapper --gradle-version=4.5 --distribution-type=bin
Gradle 文件
如果您使用 Maven,有一个 POM.XML 文件告诉 Maven 如何构建项目。在 Gradle 中,一个典型的项目需要两个文件
- settings.gradle;
- build.gradle
对于 Buildship 向导生成的这个最小化项目,settings.gradle 内容如下
rootProject.name = 'minimal-project'
- settings.gradle 文件主要用于多项目应用程序。在这个单项目应用程序中,settings.gradle 文件只指定了项目名称。事实上,如果我们从项目中删除这个文件,Gradle 也能正常构建项目;
- 在我的下一篇关于多项目应用程序的笔记中,我会花更多时间讨论 settings.gradle 的用法。
build.gradle 文件告诉 Gradle 项目应该如何构建。
apply plugin: 'java-library'
repositories { jcenter() }
dependencies {
api 'org.apache.commons:commons-math3:3.6.1'
testImplementation 'junit:junit:4.12'
}
repositories
部分告诉 Gradle 从 Bintray jcenter 仓库查找依赖项;dependencies
部分告诉 Gradle 应用程序需要commons-math3
库,并且需要junit
来运行单元测试;apply plugin: 'java-library'
告诉 Gradle 该项目将被构建成一个 Java 库。
Eclipse 外部工具
如果您想在 Eclipse 中更方便地通过 gradlew
发出构建命令,您可以使用 Eclipse 中的 **外部工具 (External Tools)** 功能。
您可以点击 **外部工具 (External Tools)** 图标 -> **外部工具配置... (External Tools Configurations...)** 来添加外部工具配置。
您可以为配置命名。为了方便,我简单地称之为 gradlew clean build
。在将 gradlew clean build
配置添加到 Eclipse 后,您可以通过外部工具配置在 Eclipse 中使用以下命令来构建项目。
gradlew clean build
您应该会看到项目成功构建,并且单元测试也成功运行。
一个 Spring Boot JAR 示例
为了比 Buildship 向导创建的最小化项目有更好的评估,我转换了一个我之前创建的 Maven 项目。这个例子是一个 Spring Boot 可执行 JAR 应用程序。如果您想看看这个 Gradle 示例,我强烈建议您看看 我之前的笔记。这篇笔记是关于 Gradle 的,不是关于 Spring Boot 的。我不会在这篇笔记中花时间讲解如何将 Spring Boot 应用程序打包成 JAR 文件。
如果您已经将 Buildship 安装到您的 Eclipse 中,您可以导入附件中的项目。您可以点击 **文件 (File)** -> **导入... (Import...)** -> **Gradle** -> **现有 Gradle 项目 (Existing Gradle Project)** 来导入项目。项目结构与 我之前笔记中的示例 完全相同。唯一的区别是这个项目将使用 Gradle 构建。
“build.gradle” 文件
buildscript {
repositories { jcenter() }
dependencies {
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE'
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'maven'
group = 'com.song.example'
version = '0.0.1'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories { jcenter() }
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web:1.5.9.RELEASE'
}
bootRepackage {
mainClass = 'com.song.web.boot.ApplicationStart'
}
如果您对 我之前的笔记 有了充分的理解,您应该已经准备好理解 build.gradle 文件了。
org.springframework.boot
插件负责将项目打包成一个可执行的 Spring Boot JAR 文件;maven
插件负责将编译后的 JAR 文件安装到 Maven 本地存储库;bootRepackage
部分告诉org.springframework.boot
插件,com.song.web.boot
包中的ApplicationStart
类是 Spring Boot 应用程序的入口点。
构建和运行
如果您已成功将项目导入 Eclipse,则可以在 Eclipse 中调试/运行应用程序。您可以右键单击项目 -> **调试为 (Debug As)**/**运行为 (Run As)** -> **Java 应用程序 (Java Application)**,然后选择 **ApplicationStart** 作为应用程序的入口类来调试/运行应用程序。
您可以通过 Gradle Wrapper 发出以下命令来构建应用程序。
gradlew clean build install
构建成功后,在项目目录下的 build/libs 目录中会创建一个 spring-boot-example-gradle-0.0.1.jar 文件。您可以通过从项目目录执行以下命令来运行 JAR 文件。
java -jar build/libs/spring-boot-example-gradle-0.0.1.jar
无论您如何启动应用程序,如果启动成功,您都可以通过浏览器进行测试。
关注点
- 这是一篇关于使用 Gradle 构建 Java 应用程序的笔记。它侧重于构建单项目 Java 应用程序的简单情况;
- 希望您喜欢我的帖子,并希望这篇说明能对您有所帮助。
历史
- 2018 年 1 月 30 日:第一次修订