我应该在编写Gradle插件时跟踪Kotlin吗
我正在编写一个插件,从现有的Gradle构建脚本中提取一些样板文件。现有的构建脚本主要是用Groovy和编译Java编写的 为了构建我的插件,我正在使用Gradle Kotlin DSL,我想借此机会也用Kotlin编写插件。这一切都是可行的,但现在我的插件对Kotlin有很大的依赖性——Gradle文档特别推荐 Java和Groovy插件避免了这一点,因为Java和Groovy是Gradle的共享依赖项,但Kotlin并不是共享的前置需求,因此我们必须关注不同插件所需的Kotlin版本之间的潜在冲突 我想我应该采用以下方法之一,但不清楚是哪一种:我应该在编写Gradle插件时跟踪Kotlin吗,gradle,kotlin,shadowjar,Gradle,Kotlin,Shadowjar,我正在编写一个插件,从现有的Gradle构建脚本中提取一些样板文件。现有的构建脚本主要是用Groovy和编译Java编写的 为了构建我的插件,我正在使用Gradle Kotlin DSL,我想借此机会也用Kotlin编写插件。这一切都是可行的,但现在我的插件对Kotlin有很大的依赖性——Gradle文档特别推荐 Java和Groovy插件避免了这一点,因为Java和Groovy是Gradle的共享依赖项,但Kotlin并不是共享的前置需求,因此我们必须关注不同插件所需的Kotlin版本之间的潜
stdlib
列为标准依赖项,并信任Gradle来解决问题
这适用于一个插件,但当另一个插件也在使用,但取决于不同的Kotlin时,我是否应该预期会出现问题欢迎推荐 既然您的插件正在取代样板文件,而且可能不会公开发布,那么在Gradle Kotlin DSL中将其作为一个插件编写有意义吗?这样,一个足够新的Gradle应该能够从本机理解它。在中提出了这一点,并建议使用Gradle的
kotlin dsl
插件自动配置对GradleAppi()
和embeddedKotlin()
版本的依赖关系,因此,无论Kotlin版本与Gradle的Kotlin DSL支持捆绑在一起
我担心这可能会引入对使用Kotlin DSL的调用脚本的依赖,但我已经使用Groovy脚本进行了测试,并且能够使用我的插件。我假设它仍然依赖于支持Kotlin DSL的Gradle版本,即4.0+