我是靠谱客的博主 糟糕小天鹅,这篇文章主要介绍使用 Gradle + Kotlin + Java 9 module system 构建项目,现在分享给大家,希望可以做个参考。

使用Java 9 module system和Kotlin混合编程时,由于Kotlin还未很好的支持而导致编译失败。这里给出相关的解决方法。参考连接

buildscript {
	ext {
		kotlinVersion = '1.2.41'
	}
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath "gradle.plugin.org.gradle.java:experimental-jigsaw:+"
		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.41"
		classpath "org.jetbrains.kotlin:kotlin-allopen:1.2.41"
	}
}

repositories {
	mavenCentral()
}


apply plugin: 'kotlin'
// 可以实现简单配置 Java 9 module system 插件
apply plugin: "org.gradle.java.experimental-jigsaw"

sourceCompatibility = 1.9
targetCompatibility = 1.9

compileKotlin {
	kotlinOptions {
		freeCompilerArgs = ["-Xjsr305=strict"]
		jvmTarget = "1.8"
	}
}
compileTestKotlin {
	kotlinOptions {
		freeCompilerArgs = ["-Xjsr305=strict"]
		jvmTarget = "1.8"
	}
}
// kotlin 1.2.41 版本并不能很好的支持 Java 9 module system
// 需要设置destinationDir路径解决编译问题
compileKotlin.destinationDir = compileJava.destinationDir
compileTestKotlin.destinationDir = compileJava.destinationDir
// 排除编译产生的重复class
jar { duplicatesStrategy = "EXCLUDE" }


dependencies {
	compile 'com.fasterxml.jackson.module:jackson-module-kotlin'
	compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
	compile "org.jetbrains.kotlin:kotlin-reflect"
}

复制代码

转载于:https://juejin.im/post/5ae5d28e6fb9a07aab299fde

最后

以上就是糟糕小天鹅最近收集整理的关于使用 Gradle + Kotlin + Java 9 module system 构建项目的全部内容,更多相关使用内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(119)

评论列表共有 0 条评论

立即
投稿
返回
顶部