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"))
}
网友评论