教小白使用Gradle构建Java项目

本指南将引导您逐步使用Gradle构建一个简单的Java项目。

你会建立什么

您将创建一个简单的应用程序,然后使用Gradle进行构建。

你需要什么

1. 约15分钟
2. 最喜欢的文本编辑器或IDE
3. JDK 6或更高版本

如何完成本指南

像大多数Spring 入门指南一样,您可以从头开始并完成每个步骤,也可以绕过您已经熟悉的基本设置步骤。无论哪种方式,您最终都可以使用工作代码。

要从头开始,请继续以设置项目。

要跳过基础知识,请执行以下操作:

[下载](https://github.com/spring-guides/gs-gradle/archive/master.zip)并解压缩本指南的源存储库,或使用Git对其进行克隆:git clone https://github.com/spring-guides/gs-gradle.git

光盘进入 gs-gradle/initial

跳到安装Gradle。

完成后,您可以根据中的代码检查结果gs-gradle/complete。

设置项目

首先,为Gradle设置一个Java项目。为了继续关注Gradle,现在使该项目尽可能简单。
创建目录结构
在您选择的项目目录中,创建以下子目录结构;例如,*mkdir -p src/main/java/hello在 nix**系统上:

使用Gradle构建Java项目

在src/main/java/hello目录中,您可以创建所需的任何Java类。为了简单起见并与本指南的其余部分保持一致,Spring建议您创建两个类:HelloWorld.java和Greeter.java。

src/main/java/hello/HelloWorld.java
.

package hello;

public class HelloWorld {
public static void main(String[] args) {
Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
}
}
.

src/main/java/hello/Greeter.java
.

package hello;
public class Greeter {
public String sayHello() {
return "Hello world!";
}
}

安装Gradle

现在您有了可以使用Gradle生成的项目,您可以安装Gradle。

强烈建议使用安装程序:

[SDKMAN](https://sdkman.io/)
[Homebrew](https://brew.sh/)(brew install gradle)
万不得已,如果这些工具都不满足您的需求,则可以从https://www.gradle.org/downloads 下载二进制文件。仅需要二进制文件,因此请查找gradle- version -bin.zip 的链接。(您也可以选择gradle- version -all.zip来获取源代码,文档以及二进制文件。)

将文件解压缩到您的计算机,然后将bin文件夹添加到您的路径。

要测试Gradle的安装,请从命令行运行Gradle:

gradle

如果一切顺利,您会看到一条欢迎消息:

:help

Welcome to Gradle 2.3.

To run a build, run gradle <task> ...

To see a list of available tasks, run gradle tasks

To see a list of command-line options, run gradle --help

BUILD SUCCESSFUL

Total time: 2.675 secs

您现在已经安装了Gradle。

找出Gradle可以做什么
现在已经安装了Gradle,看看它能做什么。在为项目创建build.gradle文件之前,您可以询问它可用的任务:

gradle tasks

您应该看到可用任务的列表。假设您在尚未具有build.gradle文件的文件夹中运行Gradle ,您将看到一些非常基本的任务,例如:

:tasks

== All tasks runnable from root project

== Build Setup tasks
setupBuild - Initializes a new Gradle build. [incubating]

== Help tasks
dependencies - Displays all dependencies declared in root project ‘gs-gradle‘.
dependencyInsight - Displays the insight into a specific dependency in root project ‘gs-gradle‘.
help - Displays a help message
projects - Displays the sub-projects of root project ‘gs-gradle‘.
properties - Displays the properties of root project ‘gs-gradle‘.
tasks - Displays the tasks runnable from root project ‘gs-gradle‘.

To see all tasks and more detail, run with --all.

BUILD SUCCESSFUL

Total time: 3.077 secs

即使这些任务可用,但如果没有项目构建配置,它们也不会提供太多价值。当您充实build.gradle文件时,一些任务会更有用。当您向中添加插件时build.gradle,任务列表将不断增加,因此您偶尔会希望再次运行任务以查看可用的任务。

说到添加插件,接下来您将添加一个启用基本Java构建功能的插件。

构建Java代码

从简单build.gradle开始,在本指南开头创建的<项目文件夹>中创建一个非常基本的文件。只给它一行:

apply plugin: ‘java‘

构建配置中的这一行带来了巨大的力量。再次运行gradle任务,您会看到新任务已添加到列表中,包括用于构建项目,创建JavaDoc和运行测试的任务。

您将经常使用gradle构建任务。该任务将代码编译,测试并将其组装为一个JAR文件。您可以这样运行它:

gradle build

几秒钟后,“ BUILD SUCCESSFUL”表明构建已完成。

要查看构建工作的结果,请查看构建文件夹。在其中,您会找到几个目录,包括以下三个著名的文件夹:

  • classes. The project’s compiled .class files.
  • reports. Reports produced by the build (such as test reports).
  • libs. Assembled project libraries (usually JAR and/or WAR files).

classes文件夹包含.class文件,这些文件是通过编译Java代码生成的。具体来说,您应该找到HelloWorld.class和Greeter.class。
此时,该项目没有任何库依赖关系,因此dependency_cache文件夹中没有任何内容。

reports文件夹应包含项目上正在运行的单元测试的报告。由于该项目尚无任何单元测试,因此该报告将变得毫无意义。

libs文件夹应包含一个以项目文件夹命名的JAR文件。再往下看,您将看到如何指定JAR的名称及其版本。

声明依赖

简单的Hello World示例完全是独立的,并且不依赖于任何其他库。但是,大多数应用程序都依赖于外部库来处理常见和/或复杂的功能。

例如,假设除了说“ Hello World!”外,您还希望应用程序打印当前日期和时间。您可以使用本机Java库中的日期和时间工具,但是可以使用Joda Time库使事情变得更有趣。

首先,将HelloWorld.java更改如下:

package hello;

import org.joda.time.LocalTime;

public class HelloWorld {
public static void main(String[] args) {
LocalTime currentTime = new LocalTime();
System.out.println("The current local time is: " + currentTime);

Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
}
}

这里HelloWorld使用Joda Time的LocalTime类来获取并打印当前时间。

如果您gradle build现在运行以构建项目,则构建将失败,因为您尚未在构建中将Joda Time声明为编译依赖项。

对于初学者,您需要添加第三方库的源。

repositories {
mavenCentral()
}

该repositories块指示该构建应从Maven Central存储库中解决其依赖关系。Gradle在很大程度上依赖于Maven构建工具建立的许多约定和功能,包括使用Maven Central作为库依赖源的选项。

现在我们已经准备好第三方库了,让我们声明一下。

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
compile "joda-time:joda-time:2.2"
testCompile "junit:junit:4.12"
}

使用该dependencies块,您可以声明Joda Time的单个依赖关系。具体来说,您需要在joda-time组中要求(从右到左阅读)joda-time库的2.2版。

关于此依赖关系的另一件事要注意,它是一个compile依赖关系,表明它在编译时应该可用(并且如果您正在构建WAR文件,则包含在WAR的/ WEB-INF / libs文件夹中)。其他值得注意的依赖类型包括:

providedCompile。编译项目代码所需的依赖关系,但是将在运行时由运行代码的容器(例如Java Servlet API)提供。

testCompile。用于编译和运行测试的依赖关系,但对于构??建或运行项目的运行时代码不是必需的。
最后,让我们为我们的JAR工件指定名称。

.

jar {
baseName = ‘gs-gradle‘
version = ‘0.1.0‘
}

该jar块指定如何命名JAR文件。在这种情况下,它将渲染gs-gradle-0.1.0.jar。

现在,如果您运行gradle build,则Gradle应该从Maven Central存储库中解决Joda Time依赖关系,并且构建将成功。

使用Gradle Wrapper构建项目

Gradle包装器是开始Gradle构建的首选方法。它由Windows的批处理脚本以及OS X和Linux的Shell脚本组成。这些脚本允许您运行Gradle构建,而无需在系统上安装Gradle。这曾经是添加到您的构建文件中的东西,但是已经被折叠到Gradle中,因此不再需要。相反,您只需使用以下命令。

$ gradle wrapper --gradle-version 2.13

该任务完成后,您会注意到一些新文件。这两个脚本位于文件夹的根目录中,而包装jar和属性文件已添加到新gradle/wrapper文件夹中。

使用Gradle构建Java项目

Gradle包装器现在可用于构建您的项目。将其添加到您的版本控制系统中,每个克隆您的项目的人都可以相同地构建它。它的使用方式与Gradle的安装版本完全相同。运行包装程序脚本以执行构建任务,就像之前一样:

./gradlew build

第一次为指定版本的Gradle运行包装程序时,它将下载并缓存该版本的Gradle二进制文件。Gradle Wrapper文件旨在提交给源代码管理,以便任何人都可以构建项目,而无需首先安装和配置特定版本的Gradle。

在这一阶段,您将构建代码。您可以在此处查看结果:

使用Gradle构建Java项目

包括的是两个预期类文件Greeter和HelloWorld,以及JAR文件。快速浏览:

$ jar tvf build/libs/gs-gradle-0.1.0.jar
0 Fri May 30 16:02:32 CDT 2014 META-INF/
25 Fri May 30 16:02:32 CDT 2014 META-INF/MANIFEST.MF
0 Fri May 30 16:02:32 CDT 2014 hello/
369 Fri May 30 16:02:32 CDT 2014 hello/Greeter.class
988 Fri May 30 16:02:32 CDT 2014 hello/HelloWorld.class

类文件捆绑在一起。需要注意的重要一点是,即使您将joda-time声明为依赖项,该库也不包含在此处。而且JAR文件也不可运行。

为了使此代码可运行,我们可以使用gradle的application插件。将此添加到您的build.gradle文件。

apply plugin: ‘application‘

mainClassName = ‘hello.HelloWorld‘

然后,您可以运行该应用程序!

$ ./gradlew run
:compileJava UP-TO-DATE
:proce***esources UP-TO-DATE
:classes UP-TO-DATE
:run
The current local time is: 16:16:20.544
Hello world!

BUILD SUCCESSFUL

Total time: 3.798 secs

捆绑依赖项需要更多的思考。例如,如果我们正在构建WAR文件(一种通常与打包第三方依赖相关的格式),则可以使用gradle的[WAR插件](https://docs.gradle.org/current/userguide/war_plugin.html)。如果您使用的是Spring Boot,并且想要一个可运行的JAR文件,则[spring-boot-gradle-plugin](https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-gradle)非常方便。在此阶段,gradle对您的系统了解不足,无法做出选择。但是就目前而言,这应该足以开始使用gradle。

为了完成本指南的内容,下面是完整的build.gradle文件:

build.gradle
.

apply plugin: ‘java‘
apply plugin: ‘eclipse‘
apply plugin: ‘application‘

mainClassName = ‘hello.HelloWorld‘

// tag::repositories[]
repositories {
mavenCentral()
}
// end::repositories[]

// tag::jar[]
jar {
baseName = ‘gs-gradle‘
version = ‘0.1.0‘
}
// end::jar[]

// tag::dependencies[]
sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
compile "joda-time:joda-time:2.2"
testCompile "junit:junit:4.12"
}
// end::dependencies[]

// tag::wrapper[]
// end::wrapper[]

这里嵌入了许多开始/结束注释。这样就可以将构建文件的位提取到本指南中,以进行上述详细说明。您的生产构建文件中不需要它们。

摘要
恭喜你!现在,您已经创建了一个简单而有效的Gradle构建文件,用于构建Java项目。

也可以看看
以下指南也可能会有所帮助:

[使用Maven构建Java项目](https://blog.csdn.net/weixin_46577306/article/details/105514482)

原文地址:https://www.cnblogs.com/MonsterJ/p/12700386.html

时间: 2024-10-15 10:22:45

教小白使用Gradle构建Java项目的相关文章

使用 Gradle 构建 Java 项目

使用 Gradle 构建 Java 项目 这个手册将通过一个简单的 Java 项目向大家介绍如何使用 Gradle 构建 Java 项目. 我们将要做什么? 我们将在这篇文档航中创建一个简单的 Java 项目,然后使用 Gradle 构建它. 需要准备什么? 预留15分钟空闲时间 一件称手的兵器(你最喜欢的 IDE 或者文本编辑器) Java环境([JDK6](http://www.oracle.com/technetwork/java/javase/downloads/index.html”J

Gradle构建Java项目

前提:已经安装好Gradle 一.创建目录结构 在项目主目录下,创建以下子目录;在*nix系统下可以使用命令: mkdir -p src/main/java/hello vim src/main/java/hello/HelloWorld.java vim src/main/java/hello/Greeter.java src/main/java/hello/HelloWorld.java的源代码: package hello; public class HelloWorld { public

Spring Boot 项目构建 之 使用 Gradle 构建 Java 项目(Building Java Projects with Gradle)

Table of contents What you'll build What you'll need How to complete this guide Set up the project Install Gradle Find out what Gradle can do Build Java code Declare dependencies Build your project with Gradle Wrapper Summary Tags gradle Concepts and

从都到尾一招教你使用Maven构建Java项

本指南将引导您使用Maven构建一个简单的Java项目. 你会建立什么 您将创建一个提供一天中时间的应用程序,然后使用Maven进行构建. 你需要什么 1. 约15分钟 2. 最喜欢的文本编辑器或IDE 3. JDK 8或更高版本 如何完成本指南 您可以从头开始并完成每个步骤,也可以绕过您已经熟悉的基本设置步骤.无论哪种方式,您最终都可以使用工作代码. 设置项目 首先,您需要设置一个Java项目供Maven构建.为了专注于Maven,现在使该项目尽可能简单.在您选择的项目文件夹中创建此结构. 创

使用Gradle构建Android项目

新项目中,使用了Google I/O 2013发布的新工具,使用Gradle构建android项目,并且在新版的Intellig IDEA以及google的Android Studio对其支持.本文就介绍一下怎么使用gradle构建android项目,进行多个版本编译. Gradle是什么? Gradle是以Groovy为基础,面向java应用,基于DSL语法的自动化构建工具.是google引入,替换ant和maven的新工具,其依赖兼容maven和ivy. 使用gradle的目的: 更容易重用

Gradle构建Java Web应用(转)

转自:http://www.blogjava.net/jiangshachina/archive/2014/02/03/409285.html 本文是发布在java.net上的一篇摘自于<Gradle in Action>一书中的节选,介绍了使用Gradle构建Java Web应用的过程.刚刚接触Gradle,看到了这篇小文,随手译了出来:-) (2014.01.23最后更新) 当今世界,一派繁忙.在职业生涯和私人生活中,我们中间的许多人要同时管理多个项目.你可能常常发现自己处于不知所措及失控

Gradle构建Java Web应用:Servlet依赖与Tomcat插件(转)

Gradle的官方tutorial介绍了构建Java Web应用的基本方法.不过在使用Servlet做上传的时候会碰到问题.这里分享下如何通过Servlet上传文件,以及如何使用Gradle来构建相应的Java Web工程. 参考原文:How to Build Web Scanning Application with Gradle Servlet文件上传 使用Servlet文件上传,可以参考Oracle的官方文档The fileupload Example Application.这里需要注意

使用gradle构建android项目(续)

在几个月之前,我已经写过一篇使用gradle构建android项目的博客了http://blog.isming.me/2014/05/20/android4gradle/,那篇文章已经介绍了如何使用gradle进行项目构建,以及为谷歌会推荐使用gradle.当时android的gradle插件是0.11.0,现在插件的版本已经是0.14.3了,对于一些老的方法和api,有一些已经被移除,无法使用.因此有必要再写一篇博客介绍这些被移除的部分和替代方案.同时由于个人学识原因,当时没有介绍的一些技巧,

ant构建java项目---Class Not Found:javac1.8

最近在使用ant构建java项目时出现了Class Not Found:javac1.8的错误.在网上查了查,发现是JDK版本和ant版本的兼容性的问题,那么好吧 1.我们去Apache官网重新下载1.9.6版本的ant--下载地址:http://ant.apache.org/bindownload.cgi 2.下载好了,配置ant的环境变量,Path里指定ant的bin目录,命令行里查看ant的环境变量是否配置成功:ant -verison 3.命令行里进入Java项目的根目录(build.x