zoukankan      html  css  js  c++  java
  • Gradle 教程:第二部分,JAVA PROJECTS【翻译】

    原文地址:http://rominirani.com/2014/07/28/gradle-tutorial-part-2-java-projects/

    在这部分的教学中,我们会学习如何使用Gradle去编译,构建,测试你的JAVA项目。我们将会把关注的焦点放在Gradle的内部机制上,而不是java代码,所以我将使用非常简单的java工程来帮助我们理解Gradle的概念。

    在阅读本文前,请确保您已经阅读了第一部分

    Gradle:工程(Project),任务(Tasks) and 插件(Plugin)

    我们先来炒个回锅肉,回想一下前面一节我们所讲的一些东西,并且在加一些本节所需要的新知识。

    总的来说,gradle编译进程在开始编译的时候,总是会去寻找build.gradle文件,build.gradle是Gradle的核心文件,该文件包含了Gradle需要执行的各种任务task,和指令去指导Gradle去做的事情。任务task可以理解为编译,测试,编译jar,部署等事件,只不过在Gradle里面这些事件可以被算便打乱,而在一般的IDE里面,却只能是编译 –》构建 –-》部署 – 》发布的过程。所以Gradle因为任务的概念,使得程序的构建可以多样化,一次执行发布多个包这样非常灵活的控制。

    但是我们也没有必要手动的为一次构建过程详细的指定每一个任务,因为在Gradle中有一个叫做Plugin(插件)的东西帮我们做了这些事情。通过使用插件,我们可以非常简单的指定任务(但是这里需要编写插件所提供的约定)。

    那么插件是什么意思呢?这里的插件和我们使用软件时增加插件的那个意思基本一致:一个插件(Plugin)就是我们可以用来增加Gradle的能力的约定机制。按照Gradle的约定机制所定义的插件,可以让Gradle知道如何执行任务。

    本节我们不打算关注如何写一个插件。我们只是使用一些非常厉害强大的Gradle 插件来帮助我们做一些事情。这些插件已经提供了一些我们可以直接使用的任务。

    不着急额,来与我多碰一杯,事情就能够一帆风顺了.

    JAVA plugin

    让我们先从对于java程序猿来说最终要的插件开始说起:java plugin 。这个插件为项目已经定义如下的能力:

    1.编译

    2.测试

    3.打包

    逻辑上来说,这估计就是我们java项目所需要的一切功能了。其中打包通常意义就是打包一个jar文件。

    所有的你需要在项目中使用的插件都需要增加在build.gradle文件中形式如下:

    apply plugin:<plugin-name>

    现在,我们需要使用java插件,所以我们在build.gradle中增加:

    apply plugin: “java”

    为了更好的理解上面这句话是什么意思,我们来举个实例。

    在本地电脑上创建一个文件夹:example2 ,在example2文件家里创建build.gradle,并在文件中加上

    apply plugin: “java”

    如图

    image

    然后再cmd里面执行

    gradle tasks

    应该就会看到如下结果

    image

    可以看到其中就有java plugin为我们提供的各种任务,比如:

    build(编译)

    clean(清除)

    assemble(集成)

    这些任务甚至可能会依赖其他的任务,具体信息可以参考官方参考依赖图

    使用java plugin编译的简单的JAVA 项目

    当你成功执行上面的代码之后,你再次打开example2文件,会看到下面会多生产一些文件,现在的文件夹下:

    image

    虽然java plugin已经提供了 build,clean,assemble等任务,我们要如何调用呢?当然出了CMD的方式,还可以集成在build.gradle文件中。

  • 相关阅读:
    JQuery中的回调对象
    CSS中的视觉格式化模型
    css中的选择器
    浅谈css中的position
    python-24: re 模块 之二 re方法及反斜杠
    python-23 xml.etree.ElementTree模块
    python-22 eval json pickle shelve 之间差别
    python-21 os 模块
    python-18: datetime 模块
    python-16: time 模块 之二
  • 原文地址:https://www.cnblogs.com/pavkoo/p/5139595.html
Copyright © 2011-2022 走看看