我有一个 Gradle Kotlin mutli 模块项目,并且希望能够使用同一项目内的模块之一中内置的 versionCatalog。
versionCatalog 是使用子模块
version-catalog
中的 issuing-commons-dependency
插件构建的,看起来像这样:
plugins {
`version-catalog`
`maven-publish`
}
catalog {
versionCatalog {
version("spring-boot-version", "2.5.12")
plugin("spring-boot-plugin", "org.springframework.boot").versionRef("spring-boot-version")
library("spring-webflux", "org.springframework.boot", "spring-boot-starter-webflux").versionRef("spring-boot-version")
library("spring-web", "org.springframework.boot", "spring-boot-starter-web").versionRef("spring-boot-version")
}
}
publishing {
publications {
create<MavenPublication>("maven") {
from(components["versionCatalog"])
}
}
}
所以我想我可以在根级别做这样的事情
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(":commons-dependency")
}
}
}
Cannot resolve external dependency :commons-dependency because no repositories are defined
或者子项目级别的类似内容
val libs = project.rootProject
.extensions
.getByType(VersionCatalogsExtension::class.java)
.named("libs")
Exception is: org.gradle.api.UnknownDomainObjectException: Extension of type 'VersionCatalogsExtension' does not exist. Currently registered extension types: [ExtraPropertiesExtension, BasePluginExtension, DefaultArtifactPublicationSet, SourceSetContainer, ReportingExtension, JavaPluginExtension, JavaToolchainService, TestingExtension, KotlinJvmProjectExtension, KotlinTestsRegistry, JacocoPluginExtension, SonarQubeExtension, DetektExtension, IdeaModel, AllOpenExtension, PublishingExtension, ScriptingExtension]
我正在使用
gradle-7.5.1
可以将其添加到settings.gradle.kts,但在干净的构建后它将不起作用。
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("dependency/build/version-catalog/libs.versions.toml"))
}
}
}