gpt4 book ai didi

Gradle 在多项目中共享属性

转载 作者:行者123 更新时间:2023-12-03 03:41:44 24 4
gpt4 key购买 nike

我对 Gradle 很陌生,正在尝试制作多项目。在根项目中声明所有公共(public)库(以及它们的版本作为属性)并应用插件。

例如,root和 child common项目。
rootsettings.gradle类型:

rootProject.name = 'root'
include 'common'

rootbuild.gradle类型:
buildscript {
ext.kotlin_version = '1.3.11'

repositories {
mavenCentral()
}

dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

subprojects {
buildscript {
repositories {
mavenCentral()
}
}

apply plugin: 'kotlin'

repositories {
mavenCentral()
}

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

现在我只想在特定的子项目中使用另一个库。在 common 中执行此操作的 build.gradle :
buildscript {
dependencies {
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
}
}

root 运行 gradle 命令时工作正常的文件夹,但失败并显示消息 Could not get unknown property 'kotlin_version' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandlercommon 运行时的文件夹。

我做错了什么?或者有什么办法吗?在多项目中共享库和属性的最佳实践是什么?

对我来说,它看起来像 common对它的“父”项目一无所知,所有关系都在根的设置中定义。

最佳答案

Gradle 无法解析该属性的原因是因为文件夹 common 中的项目被命名为 commons .这是由 common 中的拼写错误引起的。的settings.gradle .幸运的是,这很容易修复 (common/settings.gradle):

rootProject.name = 'common'

或者,只需删除 common/settings.gradle ,在这种情况下它是完全可选的。

考虑阅读 authoring multi-project builds 的官方 Gradle 文档和指南 create multi-project builds有关多项目构建的更多信息和最佳实践。

关于Gradle 在多项目中共享属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54101492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com