Gradle使用及语法简单说明

2018-08-14  本文已影响0人  蓝Renly

Day07

知识点1:插件

插件:一定任务的集合;
常用三方插件
plugins{
    java   //支持java运行
    application  //支持java运行  并打包应用程序
    war //把项目打包成war包,多用于JavaEE
    kotlin("jvm") //可以支持开发kotlin(Kotlin比java多了个向计算机添加运行时库)
}
//导入kotlin的标准库
repositories {
    mavenCentral()
}
dependencies {
    compile(kotlin("stdlib"))
}

第一种使用插件市场插件的方式

plugins{
    id("org.jetbrain.kotlin.jvm") version "1.2.60"
}

第二种使用插件市场插件的方式

buildscript{
    repositories{
        maven{
            setUrl("https://plugins.gradle.org/m2/")
        }
    }
    dependencis{
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.41")
    }
}

知识点2:依赖的导入

.Gradle依赖管理:(导包)在什么地方以什么形式引入外部代码.HttpClient
import org.apache.commons.httpclient.HttpClient
import org.apache.commons.httpclient.HttpStatus
import org.apache.commons.httpclient.methods.GetMethod
import java.io.File
import java.io.FileOutputStream
var path="http://t1.hxzdhn.com/uploads/tu/201703/54/121.jpg" //HttpClient包的路径
fun main(args: Array<String>) {
    val client = HttpClient()
    val method = GetMethod(path)
    try {
        val statusCode = client.executeMethod(method)
        if (statusCode == HttpStatus.SC_OK) {
            //返回的结果
            val body = method.responseBody
            val fos = FileOutputStream(File("a.jpg"))
            fos.write(body)
        } else {
            println("下载失败")
        }
    } catch (e: Exception) {
        e.printStackTrace()
        println("下载失败")
    }
}

知识点3:依赖冲突的2种解决方案

1.依赖的传递性
2.同样的jar包,版本不同 
import org.gradle.internal.impldep.org.junit.experimental.categories.Categories.CategoryFilter.exclude
plugins {
    kotlin("jvm")
}
//代码仓库
repositories {
    mavenCentral()
}
//导入的时候 就能发现有没有版本冲突  需要关闭gradle默认处理方案
//添加这个脚本之后 如果有冲突  gradle也不会自动解决   会抛出这个错误
configurations.all {
    resolutionStrategy {
        failOnVersionConflict()
        //强制指定版本号
        force("commons-logging:commons-logging:1.2")
    }
}
//依赖
//maven
//gradle
dependencies {
    compile(kotlin("stdlib"))
    // https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient
    //logging  1.0.4
    compile("commons-httpclient", "commons-httpclient", "3.1")
//    {
//        //把logging这个依赖排除掉
//        exclude("commons-httpclient:commons-httpclient")
//    }
    //spring
    // https://mvnrepository.com/artifact/org.springframework/spring-core
    //logging 1.1.1
    compile("org.springframework", "spring-core", "2.5.6")
}

知识点4:多模块构建

module1:
buildscript {
    repositories {
        maven {
            setUrl("https://plugins.gradle.org/m2/")
        }
    }
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.60")
    }
}
allprojects {
    apply{
        plugin( "org.jetbrains.kotlin.jvm")
    }
}
module2:
repositories {
    mavenCentral()
}
dependencies {
    compile(kotlin("stdlib"))
}
上一篇 下一篇

猜你喜欢

热点阅读