zoukankan      html  css  js  c++  java
  • 【一】Gradle 初识

    1.Gradle和Maven的对比

    1. gradle 使用groovy语言,可以进行逻辑判断,maven基于xml,无法进行逻辑判断。
    2. gradle 可以在一个项目中,根据需求,生成2个不同的jar, maven则不能从一个项目中,生成两个不同的jar或者war。需要修改多份xml。
    3. gralde 缓存会校验本地和远程是否发生变化,没变化就不会下载。maven不会。这里看gradle的目录结构,jar包的父层就是校验码。
    4. maven对于快照jar包,如果本地缓存了。那么远端仓库更新了,本地也不一定更新,而gradle 对于是否更新,可以做自定义的配置。

    2.build.gradle

     1 #使用 java
     2 apply plugin: 'java'
     3 #设置版本号
     4 version = 0.3 
     5 #设置编译级别
     6 sourceCompatibility = 1.6
     7 
     8 #编译成jar
     9 jar {
    10     manifest {
    11         #设置启动类
    12         attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
    13     }
    14 }
    15 #设置源码位置
    16 sourceSets {
    17     main {
    18         java {
    19             #设置源码目录
    20             srcDirs = ['src']
    21         }
    22     }
    23 }
    24 
    25 #输出的classes目录,默认是build
    26 buildDir = 'out'
    27 
    28 #设置仓库
    29 repositories {
    30     mavenCentral()
    31 }
    32 #设置依赖
    33 dependencies {
    34     #依赖 groupId artifactId version
    35     #测试时需要
    36     testCompile group: 'junit', name: 'junit', version: '4.12'
    37     #编译时需要 运行时不需要
    38     providedCompile group: 'javax.servlet', name: 'jsp-api', version: '2.0'
    39     #编译时 运行时都需要
    40     compile group: 'org.springframework', name: 'spring-core', version: '5.1.5.RELEASE'
    41     #编译时需要 运行时不需要
    42     providedCompile 'javax.servlet:servlet-api:2.5',
    43             'javax.servlet.jsp:jsp-api:2.1'
    44     #运行时需要,编译时不需要
    45     runtime 'javax.servlet:jstl:1.1.2',
    46             'taglibs:standard:1.1.2'
    47 }
    48 #指定wep app 目录在哪里
    49 webAppDirName = 'webfiles'
    50 #指定静态资源的目录 从哪里引入 这里的配置有 要和webAppDirName相关联
    51 war {
    52     from 'static'
    53 }
    54 #构建 gradlew 任务 
    55 task wrapper(type: Wrapper) {
    56     gradleVersion = '4.8'
    57     distributionType = 'all'  # bin和all
    58     distributionBase    //包装器下载的相对地址
    59     distributionUrl     //包装器下载的地址
    60 }

    3.gradle生成的目录介绍

    1. gradle下的build ,类似maven中的targer
    2. 生成后的war,在gradle中的lib下
    3. distributions 默认发包的目录

    4.groovy基本语法介绍

    println("hello groovy!")
    println "hello groovy!"
    println "acbc" - "c" //输出abc 字符串的单个的加减,感觉比java方便
    def i = 18 //定义变量 弱类型 //集合操作 def list = ['a', 'b']//定义集合 list << 'c' //添加元素 println list.get(1)//获取元素 println list //map操作 def map = ['key1':'value1','key2':'value2'] map.key3 = 'value3'//设置值 println map.get('key1')//获取元素 println map //定义方法类型对象 闭包对象 def b1 = { println "hello b1" } //调用闭包对象的方法, def method1(Closure closure) { closure() } method1(b1) //带参数的闭包方法调用 def b2 = { v -> println "hello ${v}"; } def method2(Closure closure) { closure("aaa") } method2(b2)
  • 相关阅读:
    LeetCode 3 Longest Substring Without Repeating Characters
    //……关于前后端分离与不分离
    //……关于HTTP与HTTPS
    //……关于报文
    <node>……express的中间件……//
    <git>……git的基本使用……//
    <mongoose>……find与findOne的区别……//
    //……关于TCP三次握手与四次挥手
    C#文件操作
    梯度下降的简单例子
  • 原文地址:https://www.cnblogs.com/amibandoufu/p/11342273.html
Copyright © 2011-2022 走看看