Sha*_*han 4 gradle maven-plugin maven-publish gradle-kotlin-dsl
我正在构建一个自定义的gradle.kts脚本,该脚本将对我们所有的各个模块进行maven发布到sonatype存储库,但是遇到一个奇怪的错误。这是我maven-deploy.gradle.kts文件的内容:
plugins {
`maven-publish`
signing
}
publishing {
//expression 'publishing' cannot be invoked as a function.
//The function invoke() is not found
}
Run Code Online (Sandbox Code Playgroud)
我可以在maven-deploy.gradle.kts文件中正常运行任务,但不能尝试使用publishinggradle文档中的函数。有任何想法吗?我正在使用gradle版本4.10.3(我需要Android支持)。该maven-deploy.gradle.kts文件位于我的主项目的文件中buildSrc/src/main/kotlin,并正在其中添加。id("maven-deploy")build.gradle.kts
发生这种情况是因为Gradle仅将Gradle Kotlin DSL生成的类型安全访问器导入到主构建脚本中,而不导入脚本插件中:
仅主项目构建脚本具有类型安全的模型访问器。初始化脚本,设置脚本,脚本插件(预编译或其他方式)没有。这些限制将在将来的Gradle版本中删除。
在您提到的脚本中,您可以动态访问发布扩展,例如,使用configure<PublishingExtension> { ... }:
import org.gradle.api.publish.PublishingExtension
plugins {
`maven-publish`
signing
}
configure<PublishingExtension> {
// ...
}
Run Code Online (Sandbox Code Playgroud)
此处描述:项目扩展名和约定
UPD:Gradle 5.3 RC1似乎增加了在脚本插件中使用生成的扩展的可能性。
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |