zoukankan      html  css  js  c++  java
  • 【Gradle】快速入门

     一、Gradle简介

      Gradle是源于Apache Ant和Apache Maven概念的项目自动化构建开源工具,它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置面向Java应用为主。当前其支持的语言暂时有Java、Groovy、Kotlin和Scala。

      Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

      IDEA 2017.3以上版本支持。

    二、安装

      本例安装的Gradle是5.6.4版本

    1、下载

      官方网站:https://gradle.org/install/#manually

      提供了两种下载方式,Binary-only是只下载二进制源码,Complete, with docs and sources是下载源码和文档。如果有阅读文档的需求可以下载第二个,没有需要的下载Binary-only即可。

    2、安装

      解压安装包到想安装到的目录。

    3、配置

    1)配置环境变量

      GRADLE_HOME 环境变量

      变量名:GRADLE_HOME

      变量值:解压到的目录

    export GRADLE_HOME=/Users/h__d/Applications/gradle-5.6.4
    export PATH=$PATH:$GRADLE_HOME/bin

      GRADLE_USER_HOME 仓库目录

      变量名:GRADLE_USER_HOME

      变量值:自定义Gradle仓库目录或者Maven的仓库目录

    export GRADLE_USER_HOME=/Users/h__d/.m2/repository

    2)配置Gradle仓库源

      在Gradle安装目录下的 init.d 文件夹下,新建一个 init.gradle 文件,里面填写以下配置。

    allprojects {
        repositories {
            maven { url 'file:///C:/Java/maven_repository'}
            mavenLocal()
            maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
            maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
            mavenCentral()
        }
    
        buildscript { 
            repositories { 
                maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
                maven { name "Bstek" ; url 'http://nexus.bsdn.org/content/groups/public/' }
                maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
            }
        }
    }

      repositories 中写的是获取 jar 包的顺序。先是本地的 Maven 仓库路径;接着的 mavenLocal() 是获取 Maven 本地仓库的路径,应该是和第一条一样,但是不冲突;第三条和第四条是从国内和国外的网络上仓库获取;最后的 mavenCentral() 是从Apache提供的中央仓库获取 jar 包。

    三、新建Gradle项目

    1、新建一个空文件夹test-gradle

    2、进入test-gradle目录,使用命令初始化项目

      命令:gradle init 

    MacBook-Pro-22907:test-gradle h__d$ gradle init
    
    Select type of project to generate:
      1: basic
      2: application
      3: library
      4: Gradle plugin
    Enter selection (default: basic) [1..4] 2
    
    Select implementation language:
      1: C++
      2: Groovy
      3: Java
      4: Kotlin
      5: Swift
    Enter selection (default: Java) [1..5] 3
    
    Select build script DSL:
      1: Groovy
      2: Kotlin
    Enter selection (default: Groovy) [1..2] 1
    
    Select test framework:
      1: JUnit 4
      2: TestNG
      3: Spock
      4: JUnit Jupiter
    Enter selection (default: JUnit 4) [1..4] 1
    
    Project name (default: test-gradle):      
    Source package (default: test.gradle): 
    
    > Task :init
    Get more help with your project: https://docs.gradle.org/5.6.4/userguide/tutorial_java_projects.html
    
    BUILD SUCCESSFUL in 32s
    2 actionable tasks: 2 executed

    3、初始化后的项目结构

    ├── build.gradle   // 用于配置当前项目的Gradle构建脚本
    ├── gradle
    │   └── wrapper
    │       ├── gradle-wrapper.jar      // gradlew 的可执行JAR包
    │       └── gradle-wrapper.properties  // gradlew 的配置属性
    ├── src           // 源码目录
    ├── gradlew      // 基于 unix 的系统的 Gradlew 脚本
    ├── gradlew.bat    // 基于 windows 的系统的 Gradlew 脚本
    └── settings.gradle  // 用于配置 Gradle 构建的 Gradle 设置脚本
     4、build.gradle文件说明
    // gradle 构建文件
    //
    group 'com.test.gradle'
    // 版本
    version '1.0-SNAPSHOT'
    
    // 支持 插件
    apply plugin: 'java'
    
    // 源码编译版本
    sourceCompatility = 1.8
    
    /**
     * 仓库配置
     */
    repositories {
    
        // 配置先从本地仓库寻找jar包,优先寻找上一个配置,找到不执行下面的配置
        // 本地仓库位于USER_HOME/.m2/repository
        mavenLocal()
        // aliyun镜像
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}
        // Maven的中央仓库
        mavenCentral()
    }
    
    /**
     * 依赖
     * 每一个jar包的坐标都有三个基本元素组成
     * group、name、version
     * testCompile 表示该jar包在测试的时候起作用,该属性为jar包的作用域
     * 在gradle里面添加坐标的时候都要带上jar包的作用域
     */
    dependencies {
        // spring 依赖
        implementation group: 'org.springframework', name: 'spring-context', version: '5.2.4.RELEASE'
    
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }

    5、运行项目,可以运行App.java文件

    1 public class App {
    2     public String getGreeting() {
    3         return "Hello world.";
    4     }
    5 
    6     public static void main(String[] args) {
    7         System.out.println(new App().getGreeting());
    8     }
    9 }

    其他

      联系groovy文件 

    // groovy控制台
    
    // 介绍groovy编程语言
    println("hello world");
    
    // groovy中如何定义变量
    // groovy变量是弱类型
    def i = 18;
    println(i);
    
    def s = "xiaoming"
    println s;
    
    // 定义一个集合
    def list = ['a', 'b']
    list << 'c'
    println list.get(2)
    
    // 定义一个map
    def map = ['key1':'value1', 'key2':'value2']
    map.key3 = 'value33';
    println map.get('key3');
    
    // groovy中的闭包
    // 闭包就是一个段代码块,在gradle中,主要是把闭包当参数来使用
    def b1 = {
    println "hello b1"
    }
    
    // 定义一个方法,方法里面需要闭包类型的参数
    // Closure 闭包类型
    def method1(Closure closure) {
    // 运行闭包
    closure()
    }
    
    // 调用方法
    method1(b1)
    
    // 定义带参数的闭包
    def b2 = {
    v ->
    println "hello ${v}"
    }
    def method2(Closure closure) {
    closure("小黑")
    }
    method2(b2)
    groovy.md

     

    参考:

    1、https://www.cnblogs.com/NyanKoSenSei/p/11458953.html

    2、https://zhuanlan.zhihu.com/p/159589727

    3、https://www.jianshu.com/p/8c8e848ca1a2

  • 相关阅读:
    git注册和基本命令
    thinkphp概述2
    thinkphp概述
    PHP基础知识总结
    phpmyadmin教程
    开发环境wamp3.06 + Zend studio 12 调试配置
    PHP标记风格,编码规范
    PHP开发工具 zend studio
    php与ajax技术
    可变参模板template
  • 原文地址:https://www.cnblogs.com/h--d/p/14762811.html
Copyright © 2011-2022 走看看