gradle - 如何在 Gradle 中基于 Kotlin DSL 的多项目构建中禁用 distZip
问题描述
我已经使用 Kotlin DSL 建立了一个 Gradle 多项目构建。这是build.gradle.kts
在根:
plugins {
kotlin("jvm") version "1.2.70" apply false
}
allprojects {
repositories {
mavenCentral()
}
}
subprojects {
version = "1.0"
}
这是sub/build.gradle.kts
在我的子项目中:
plugins {
application
kotlin("jvm")
}
application {
mainClassName = "me.package.MainKt"
}
dependencies {
compile(kotlin("stdlib"))
compile("io.github.microutils:kotlin-logging:1.6.10")
compile("ch.qos.logback:logback-classic:1.2.3")
}
当我运行插件时,我会$ gradle build
在.application
sub/build/distribution
我不需要 zip 发行版,也不需要 tar 发行版中的版本号。两者在常规中都应该是微不足道的,build.gradle
例如:
distZip.enabled = false
distTar.archiveName = "${project.name}.tar"
无论我尝试使用 Kotlin DSL,我都会得到Unresolved reference: distZip
. 我如何解决distZip
和distTar
任务?
解决方案
你需要的是:
val distZip by tasks
distZip.enabled = false
val distTar by tasks
distTar.archiveName = "${project.name}.tar"
或者:
tasks.getByName<Zip>("distZip").enabled = false
tasks.getByName<Tar>("distTar").archiveName = "${project.name}.tar"
推荐阅读
- unix - 如何在 Google Colab 中安装 Advanced Copy(补丁 GNU coreutils)
- flutter - 在 Raspberry Pi 4 (8 GB) 上安装 Flutter
- flutter - 扑。Dialog vs RawDialogRoute vs DialogRoute vs PopupRoute vs ModalRoute之间的区别?
- c++ - Prettier 没有在 VS 代码中格式化 C++
- javascript - 单次迭代的 Javascript 数据转换
- laravel-8 - Laravel 8 Db 连接问题
- sql - 在 SQLite 中,如何查询两个表中更改的值,并将匹配的值设为 NULL
- cypress - 如果找到零测试文件,有没有办法防止赛普拉斯失败?
- c# - Visual Studio C#:无法运行自动生成的 IntelliTest 代码?
- java - 如何混淆 Spring Boot 应用程序及其内部依赖项?