• Gradle-03 项目结构及基本语法


    Gradle 项目目录结构

    1. src/* 源码及测试目录
    • src/main/java 正式代码目录
    • src/main/resouces 放置正式文件目录,
    • src/test/java 放置单元测试目录(项目编译打包时不会编译这部分)
    • src/test/resources 放置单元测试目录
    • src/main/webapp web项目,放置页面元素,比如:js,css,img,jsp,html等等
    1. build/** ,打包编译目录
    • build/classes/** 源码编译文件
    • build/libs/** 项目打成jar包
    • resources/** 配置文件
    • tmp/** 临时文件

    Grovvy基础语法

    1. 定义普通变量
    //groovy可以省略括号
    //def 是弱类型,grovy会自动根据情况来给变量赋予对应的类型
    def s = "xianmin"
    
    1. 定义集合
    //list,单引号,双引号都可以
    def mylist = ['a','b']
    //1.1 添加元素
    list << 'c'
    //1.2 取出元素
    println list.get(2)
    
    //2. 定义map
    def map = ['key1':'value1','key2':'value2']
    //2.1 添加键值对
    map.key3='value3'
    //2.2 打印出key3的值
    println map.get('key3')
    
    

    闭包

    1. 闭包
    • 闭包其实就是一段代码块,在gradle中,主要把闭包当参数来使用,常见参数是一个方法
    1. 定义方法
    • 无参数闭包
    //1.定义一个闭包
    def b1 = {
    	println "hello b1"
    }
    //2.定义方法,方法里需要闭包类型的参数
    def method1(Closure closure){
    	closure()
    }
    //3. 调用方法
    method1(b1)
    
    • 带参闭包
    //1. 定义带参闭包
    def +b2 = {
    	v ->
    			println "hello ${v}"
    
    }
    //2 定义方法,方法里需要闭包类型的参数
    def method2(Closure closure){
    	closure("xiaoma")}
    //3 调用
    method2(b2)
    

    Gradle配置文件介绍

    build.gradle

    1. 通用配置文件
    • dependencies gradle工程的所有jar包都在 dependencies属性内放置,它至少有三个基本元素,group name version 每个jar包必须指明作用域,dependencies常见属性 ,每个属性对应一个方法

      • testCompile 表示包在测试的时候起作用,如junit
      • compile 编译运行都起作用,如spring-web,spring-context等核心框架
      • provided 只在编译阶段起作用,运行阶段不起作用,如javax.servlet
    • repositories 指定所使用的仓库,仓库放置顺序即获取jar包顺序,可以指定多个仓库,一般第一个为本地仓库即优先从本地查找,若没有在从其他仓库查找

      • mavenLocal(),jar包从本地获取
      • mavenCentral(),jar包从中央仓库获取
    1. 插件(apply)
    • apply plugin: 'java' 该插件将项目编译成普通java项目
    • apply plugin: 'war' 该插件用与web项目,会将项目

    仓库配置

    • idea中默认放置jar包的本地仓库Gradle user home :.gradle
    • 将maven本地仓库路径放置到GRADLE_USER_HOME 环境变量中

    单个项目配置

    1. 在build.gradle中添加以下仓库信息
      • 外部的repositories声明使用的仓库地址,优先从本地查找依赖,没找到再从阿里镜像源查找,都找不到则从中央仓库找
      • 外部的dependencies声明所需的依赖jar包,此处的包是作用与Java项目的JVM中 需要指定生命周期
      • buildscript中的依赖会配置在属于gradle的JVM中内部 配置repositoriesdependencies
    buildscript {
        repositories {
            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
            maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
        }
        dependencies {
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    //...
    
    repositories {
        mavenLocal()
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven{ url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
        mavenCentral()
    }
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.11'
        compile group: 'org.springframework', name: 'spring-context', version: '5.2.4.RELEASE'
        compile group: 'org.springframework', name: 'spring-core', version: '5.2.4.RELEASE'
        compile group: 'org.springframework', name: 'spring-webmvc', version: '5.2.4.RELEASE'
    
    
    

    扩展

    1. 配置tomcat,Deployment添加web项目的启动方式后,就可以启动项目了

    web项目

    单应用

    • 在build.gradle添加插件apply plugin: 'war'

    模块拆分与聚合

    1. 普通模块转变为web模块,只需在对应模块下的 build.gradle 中添加插件apply plugin: 'war'
    2. 所有模块信息,在父工程的setting.gradle 中可以看见
    3. 通用依赖。在父工程的build.gradle中将公共依赖或插件添加到allprojects 中,各子模块只需要配置自己需要的jar包依赖或插件
    4. 模块间引用,如service模块需要引用dao模块,在service模块的build.gradle
    //compile为作用域
    //project()参数为引用模块名称,格式 project(":模块名称")
    dependencies{
    	compile project(":gradle_dao")
    }
  • 相关阅读:
    Selenium2Library系列 keywords 之 _SelectElementKeywords 之 _get_labels_for_options(self, options)
    Selenium2Library系列 keywords 之 _SelectElementKeywords 之_get_select_list_options(self, select_list_or_locator)
    Selenium2Library系列 keywords 之 _SelectElementKeywords 之_get_select_list(self, locator)
    Selenium2Library中的Get Alert Message
    selenium+testNG+Ant
    Maven安装testNG
    在FOR中使用close window,循环次数大于1就会报异常
    时间格式去‘0’
    序列化和反序列化组件 基表的使用 多表断关联关系分析 多表序列化组件 自定义子序列化深度连表 多表反序列化 序列化与反序列化整合 群增接口实现 单删群删接口实现 单整体改 单与群局部改
    drf安装与封装风格 drf请求生命周期 drf五大模块(请求模块,渲染模块,解析模块,异常处理模块,响应模块)
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/12732468.html
Copyright © 2020-2023  润新知