相关疑难解决方法(0)

如何跨多个Gradle项目共享样板Kotlin配置?

典型的科特林配置在摇篮项目是非常的样板,我正在寻找抽象出来到外部构建脚本,以便它可以重复使用的方式.

我有一个工作的解决方案(下面),但感觉有点像黑客,因为kotlin-gradle-plugin不能以这种方式开箱即用.

从外部脚本应用任何非标准插件是很麻烦的,因为你不能通过id应用插件,即

apply plugin: 'kotlin' 会导致 Plugin with id 'kotlin' not found.

简单(通常)的解决方法是通过插件的完全限定类名来应用,即

apply plugin: org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper

在这种情况下抛出一个很好的小异常,表明插件可能不是这样调用的:

Failed to determine source cofiguration of kotlin plugin. 
Can not download core. Please verify that this or any parent project
contains 'kotlin-gradle-plugin' in buildscript's classpath configuration.
Run Code Online (Sandbox Code Playgroud)

所以我设法破解了一个插件(只是真正的插件的修改版本),迫使它从当前的buildcript中找到插件.

kotlin.gradle

buildscript {
    ext.kotlin_version = "1.0.3"
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
}

apply plugin: CustomKotlinPlugin
import org.jetbrains.kotlin.gradle.plugin.CleanUpBuildListener
import …
Run Code Online (Sandbox Code Playgroud)

gradle kotlin gradle-plugin

4
推荐指数
1
解决办法
346
查看次数

标签 统计

gradle ×1

gradle-plugin ×1

kotlin ×1