Gradle用户指南(章7:java插件)

  1. Java插件

    如我们所见,gradle是一个通用的构建工具。它可以构建你关心并实现的构建脚本。它是开箱即用的,然而,它不会构建任何东西除非你在你的构建脚本中添加代码。

    大多数java项目都有非常相似的基础操作:编译java源文件,运行单元测试,和创建包含类文件的jar包。如果你不想为每个项目添加这些操作代码,那是非常好的。Gradle用插件解决这个问题。这个插件通常通过以某种方式配置你的项目来扩展它,通过添加一系列预配置的任务来做一些有用的东西。Gradle附带大量的附件,当然,你也可以编写自己的附件并分享给他人。其中一个就是java插件。这个插件给你的项目添加了一些任务:编译、测试你的java源文件并生成jar包。

    Java插件是基于约定的。这意味插件在项目的许多方面都定义了默认值,例如java源文件所在的地方。如果在你的项目中遵守这个约定,则一般不需要大量修改你的构建脚本就可以有一个可用的构建。Gradle允许定制插件,如果你不想或者不能遵守约定。事实上,因为对java项目的支持是通过插件实现的,如果你不想,你可以不使用插件来构建一个项目。

    我们将在后面的章节中深入了解更多java插件例子,依赖管理,多项目的内容。在本章中,我们只想给你的一个初步的概念:如何使用java插件构建一个java项目。

  2. 一个基本的java项目

    让我们来看一个简单的例子。使用java插件,添加以下到你的构建文件中:

    这是你所有需要的来定义一个java项目。这将java插件添加到你的项目中,它将添加需要任务到你的项目中。

    Gradle将找到你生产环境下的源代码?src/main/java?和你的测试源代码src/test/java。此外,?src/main/resources下的文件都将被包含在类路径中用于运行测试。所有的输出文件夹都将创建在构建目录下,jar被包含在build/libs目录中。

    Java插件添加许多任务到你的项目中。然而你只需要少数任务就可以构建项目。我们最常用的任务是构建任务build task,它对你的项目做了一个完整的构建。当你执行 gradle build ,gradle将编译并测试你的代码,创建一个jar包包含你的主要类和资源。

    其他一些有用的任务:

    Clean

    删除构建目录,删除所有构建文件。

    Assemble

    代码编译并打包,不运行单元测试。其他插件也可以添加更多操作到这个任务。例如,如果你使用war插件,这个任务也能在你的项目中构建war包。

    Check

    编译并测试代码。其他插件可以添加更多检查到这个任务。如你使用checkstyle插件,这个任务将对你的代码运行checkstyle检查。

    通常,一个java项目将有一些外部依赖jar包。如果在项目中使用这些jar包,你需要告诉gradle如何找到他们。Gradle构件如jar,都被放置在一个仓库中。这个项目可以用来抓取项目依赖项或者发布项目构件,或者兼而有之。这个例子中,我们将使用公共的maven库。

    让我们添加一些依赖项。这里我们声明我们的生产有一个编译时类依赖于commons collections,和测试类依赖于junit

    你可以在第八章:依赖关系管理中找到更多。

    定制项目

    Java插件添加一系列属性到你的项目中。这些属性通常在项目开始处赋予默认值。如果他们不适合,我们能非常方便的改变这些值。让我们看下这些示例。这里我们将为项目指定版本号,与我们在源文件中写的版本号一起。我们还将添加一些属性到mainfest中。

    Java插件能添加定期任务,就像在构建文件中声明的那样。这意味着你可以使用前面章节展示的任何机制来定制这些任务。例如,你可以定义这些任务的性质,将行为添加到任务,改变任务依赖关系的任务,或者完全替换一个任务。在例子中,我们将配置测试任务,这类型的?Test,执行测试时添加一个系统属性:

    发布jar文件

    通常我们需要发布jar包。要做到这一点,你需要告诉gradle在哪里发布这些jar文件。在gradle,构件发布到仓库中。示例中,我们发布到本地仓库中。你也可以发布到远程位置或者多个位置。

    发布jar包,运行 gradle uploadArchives

    创建eclipse项目

    创建eclipse-specific特性描述符文件,如.project,你需要添加另一个插件到你的构建文件中。

    现在执行gradle eclipse 命令,生成eclipse项目文件。你可以找到更多关于eclipse在38章?Eclipse插件

    总结

    这里是完整的构建文件示例:

  3. 多项目构建

    现在让我们来看下典型的多项目构建。以下是项目的布局:

    这里我们拥有4个项目。项目api产生一个jar文件发送至客户提供xml网络服务的java客户机。项目webservice是一个返回xml的webapp。项目shared包含api和webservice。项目services/shared依赖于shared。

    定义一个多项目构建

    定义一个多项目构建,你需要创建一个设置文件settings file。这个设置文件在源代码树的根目录,并指定包含哪些项目构建。它必须被命名为settings.gradle。对于本例,我们使用一个简单的分层布局。下面是对应的设置文件:

    常见配置

    对于大多数多项目构建,有一些常见的配置项。在示例中,我们在根项目中使用常见的配置,使用技术configuration injection配置注入。这里,根项目就像一个容器,子项目方法遍历这个容器—在这个实例中的项目—然后注入配置。这样我们可以很容易的定义清单对所有的档案内容和一些常见的依赖关系。

    请注意,我们示例中的java插件适用于每一个子项目。这意味着我们在前一节看到的任务和配置属性是可用的。So,你可以在根目录中使用gradle build编译、测试打包源文件。

    还要注意,这些插件只是运用在子项目中,所以在根项目中找不到你期望的源文件,只有在子项目中才能找到。

    项目间的依赖关系

    你可以在相同的项目中添加项目间的依赖关系。例如,一个jar包是用来编译另一个项目的。在api构建,我们定义其依赖于shared。由于这种依赖性,gradle将确保项目shraed总在项目api之前。

    创建一个分布?

    我们创建一个分布,被分享到客户端:

  4. 下一章是什么?

    在本章中你已经看到你通常建立一个java项目需要做的任务。本章并不详尽,对java项目你还可以做的更多。你可以找到更多java插件?23章,?Java插件?,你也可以找到更多的java项目示例在gradle分布samples/java目录中

时间: 2024-10-08 09:41:13

Gradle用户指南(章7:java插件)的相关文章

Gradle用户指南(3)-构建Java项目

1.构建基本的Java项目 为了使用 Java 插件,添加下面代码到构建文件: build.gradle apply plugin: 'java' 这个就是 定义一个 Java 项目的全部.它会将 Java 插件应用到项目中,并且添加很多 task. Gradle 会在 src/main/java 目录下寻找产品代码,在 src/test/java 寻找测试代码 . 另外在 src/main/resources 包含了资源的 JAR 文件, src/test/resources 包含了运行测试.

Gradle用户指南(章10:Web应用程序快速入门)

Gradle用户指南(章10:Web应用程序快速入门) 本章正在完善中..... 本章介绍gradle对web应用程序的支持.Gradle为web应用程序开发提供了两个插件:War插件和Jetty插件.War插件扩展了java插件并且能为你的项目构建一个war包.Jetty插件扩展了War插件并且提供了发布你的web项目到Jetty容器中的功能. 构建一个War文件 构建War文件,你需要在项目中添加War插件. 注意:你可以在gradle发布库和源文件的samples/webApplicati

Gradle用户指南(章9:Groovy快速入门)

Gradle用户指南(章9:Groovy快速入门) 你可以使用groovy插件来构建groovy项目.这个插件继承了java插件的功能,且扩展了groovy编译.你的项目可以包含groovy代码.java代码或者两者混合.在其他方面,groovy项目与java项目是一致的,就像我们在章7:java快速入门中所看到的那样. 一个简单的groovy项目 让我们来看一个示例.使用groovy插件,需要添加下面的代码得到你的构建文件中. 注意:示例代码在gradle发布的源文件包的路径samples/g

Gradle用户指南(章8:依赖关系管理基础)

章8:依赖关系管理基础 本章将介绍一些gradle依赖关系管理的基础 什么是依赖关系管理? 简略的说,依赖管理是由两部分组成的.首先,gradle需要知道你要构建或者运行的项目,以便找到它们.我们将这些导入的文件视为项目的依赖.第二,gradle需要构建或者打包你的项目产品.我们将这些导出的文件视为项目的发布.下面,让我们在细节上更多的了解这两个方面. 大部分项目都不是完全彻底的独立的.它们需要其他项目的构建文件,以便编译.测试等等.例如,为了在我的项目中使用Hibernate,当编译我的源文件

Gradle用户指南

下载安装gradle 2.1 下载地址:http://www.gradle.org/learn 安装先决条件:gradle安装需要1.6或者更高版本的jdk(jre)(可以使用java –version 验证),gradle自带groove lib库,所以不必安装groove,任何已安装groove都将被忽略.Gradle使用path路径下的jdk,当然,你也可以设置JAVA_HOME指向你的jdk安装路径. Gradle发行版是一个zip压缩文件,完整的发行版包括: 二进制文件 用户指南(ht

Gradle用户指南之初学者教程(三)

写在前面的话: 博主最近在学习Android Studio相关的东西.Gradle相对于我这个从Eclipse转过来的Android开发者,也算是一个全新的事物.但它却承担着Android构建系统中相当重要的一环.本着与人方便,自己方便的精神,觉得有必要翻译一下<Gradle User Guide>中的Tutorials相关部分.由于英语水平相当有限,请大家多多指教. 文章地址:http://blog.csdn.net/mikulee/article/details/45478177 英文原文

【Gradle用户指南】Gradle特点介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 本篇文章翻译自<Gradle User Guide>,若想查看原文,请戳http://www.gradle.org/  . 1.介绍 我们想介绍Gradle给你,Gradle是一个构建系统,我们认为这是在Java世界里的一个飞跃式的发展. Gradle提供给我们: (1)一个像Ant一样非常灵活的通用构建工具 (2)一种可切换的,像Maven一样基于约定的构建框架,约定优于配置 (3)强大的对于多工程构

Gradle用户指南翻译链接

用户指南翻译: 第1-10章的翻译,不含第9章,http://pkaq.github.io/gradledoc/docs/userguide/userguide.html 第9,11-39章的翻译链接:http://blog.csdn.net/maosidiaoxian/ 最好的一本介绍Gradle的书籍:Gradle in Action, 2014年出版. 其他参考资料: [1] http://gradle.org/books/ [2] https://docs.gradle.org/2.6/

Gradle用户指南(中文版)

http://rinvay.github.io/android/2015/03/26/Gradle-Plugin-User-Guide(Translation)/