zoukankan      html  css  js  c++  java
  • Gradle part1 HelloWorld

    (https://spring.io/guides/gs/gradle/#scratch)

    ----gradle helloworld-----

    1.下载后安装

       Unzip the file to your computer, and add the bin folder to your path.

       解压文件,配置环境变量。 (D:uildgradle-2.2.1in;)

    2.测试安装情况

       命令行输入:gradle 

       正常情况会看到欢迎信息,表示已可以使用。

    3.gradle具体操作:

    a.当处于一个不存在build.gradle的文件夹中执行gradle tasks 可以查看在没有任何配置下gradle可以执行的操作。

    b.我们可以通过增加一个build.gradle配置文件,并在该文件中增加插件配置来增加gradle可执行的操作。如增加java插件之后就可以执行编译、创建javadoc以及运行测试程序的    操作。

    apply plugin: 'java'

       在命令行中将当前路径转到含有上面这个build.gradle文件的路径下,执行gradle tasks 可以看到,有了这个配置文件,就可以执行gradle build操作了。

    d.在当前路径下创建文件夹结构: srcmainjavahello 然后在hello中创建两个java源文件,HelloWorld.java

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

        和Greeter.java

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

    e.然后在cmd中执行 gradle build 命令,gradle就进行编译了。

      编译完成后,可以看到BUILD SUCCESS的提示信息。编译后在当前文件夹下会多出两个两个文件夹.gradle 和 build,build中可以看到编译后的文件就存放在classes中。

     dependency_cache中存放的是依赖包。但当前代码中没有任何其他的依赖包,所以该文件夹是空的。

    f.现在我们在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有了外部依赖,LocalTime。就需要在build.gradle中增加配置,才能进行build了。

        首先增加repositories ,gradle将会根据在repositories中指定的位置获取第三方依赖包。

    repositories {
        mavenCentral()
    }

        然后声明需要处理的依赖包:

    dependencies {
        compile "joda-time:joda-time:2.2"
    }

        PS:dependencies中参数有compile,还可以有providedCompile和testCompile。

    providedCompile中声明的依赖包,是用于编译工程代码的,但这部分依赖包是在容器运行代码时使用的(例如JAVA Serverlet API)。

    testCompile中声明的依赖包则是在编译测试或运行测试时会用到的,而在正式运行或编译时不会需要用到。

        增加这个声明后,我们再进行build操作(执行命令gradle build),会发现gradle会从maven站上下载声明的jar包和pom文件(此处为:joda-time-2.2.pom ,joda-time-2.2.jar)

        

        如上图所示,在gralde执行build操作时,会首先从指定的repositories下载配置中指定的依赖包,然后进行编译等操作。

    (***此处为通过gradle运行***)g.如果要运行这个程序,我们需要在配置声明工程类型,并指定入口类

    apply plugin: 'application'
    
    mainClassName = 'hello.HelloWorld'

        如配置好后,就可以运行这个HelloWorld程序了。运行命令 gradle run。如果一切正常应该会出现以下反馈信息:

        

    part1 plus:

    上面的内容是在安装了gradle时,才能进行执行的。而gradle提供的gradlew脚本可以在没安装gradle的情况下就可以进行gradle build操作。同时gradle wrapper在windows ,OS X ,linux中都是可以运行的。 

    我们可以在bugild.gradle配置中增加如下配置:

    task wrapper(type: Wrapper) {
        gradleVersion = '2.3'
    }

    然后执行gradle wrapper命令,gradle就会把gradlew下载到当前路径中的initial文件夹中。通过gradle下载这个wrapper程序之后。就可以执行各种操作了。同时我们可以把这个initial文件夹上传到版本控制系统中,这样所有人就都可以很方便的采用同样的版本来编译工程了,而且不需要在其他机器上再进行gradle的安装。(从这部分内容中,可以猜想:gradlew是需要安装一次gradle然后才能通过gradle来下载安装的。同时生成的gradlew是和在配置中指定的gradle版本有关的。)(PS:此处,在执行wrapper时发现并没有生成initial文件夹,而是将该文件夹中的内容直接生成在了当前路径下。)

    接下来通过gradlew来进行编译:gradlew build 或者是 ./gradlew build

    当首次通过gradlew进行编译时,gradlew会下载wrapper配置中指定的gradle字节码文件到本地,从这里看出,gradlew上传到版本控制中后,其他人在使用gradlew时就不再需要重新安装gradle了,同时也不需要去管到底使用什么版本的gradle。

    编译完成后,从build/libs/中可以找到打包好的jar文件,可以通过java -tvf build/libs/gs-gradle-0.1.0.jar 查看其中的内容,会发现虽然我们指定了依赖包,但打好的包中还是没有相应的依赖包存在。(***如果没在上面的步骤g中添加了apply plugin:application 和 mainClassName:属性,这个jar包也是不可以直接用来运行的。在官方指南中会发现这两个属性是在介绍gradlew时并且在使用gradlew build后才增加的***)

  • 相关阅读:
    [转]C#创建Windows服务与安装
    Uploadify导致Chrome频繁崩溃Crash
    【转】asp.net mvc css/js压缩合并 combres
    jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
    性能测试初学_loadrunner使用中遇到的问题
    linux 安装apache http server
    性能测试初学_loadrunner脚本增强
    性能测试初学_对loadrunner脚本的理解
    性能测试初学_利用cookie 绕过登录
    性能测试初学_linux 计数器
  • 原文地址:https://www.cnblogs.com/justbeginning/p/4351097.html
Copyright © 2011-2022 走看看