我正在尝试将Gradle版本目录发布到mavenLocal存储库,以便在多个项目之间共享版本。
版本目录的TLDR; project on github发布不起作用。
我正在按照官方docs中的描述做。
在我的./gradle文件夹中,我有一个描述我的版本目录的 *. toml文件。
通过以下方式成功导入
// settings.gradle.kts
rootProject.name = "gradle-version-catalogs"
enableFeaturePreview("VERSION_CATALOGS")
dependencyResolutionManagement {
versionCatalogs {
create("quarkus") {
from(files("gradle/quarkus.versions.toml"))
}
}
}
构建脚本如下所示:
// build.gradle.kts
group = "de.lj"
version = "1.0-SNAPSHOT"
plugins {
`version-catalog`
`maven-publish`
}
publishing {
publications {
create<MavenPublication>("quarkus") {
println("Version Catalogs:")
versionCatalogs.catalogNames.forEach { println(it) }
from(components["versionCatalog"])
}
}
}
运行gradle发布任务会将一个工件de. lj. gradle. version-catalogs:1.0-SNAPSHOT发布到我的mavenLocal资源库,但没有我想要创建的de. lj. quarkus。
我使用的是gradle版本7.3.3,带有插件version-catalog,maven-publish。我把我的项目推到了github。
任何帮助是非常感谢!
3条答案
按热度按时间q0qdq0h21#
接下来,问题是发布的TOML文件是空的。我设法让它工作,在"build. gradle. kts"中添加以下代码:
所以整个文件的结尾是:
此外,我们可以删除"settings. gradle. kts"中的这段代码:
导致:
有了这些,我就可以使用其他项目中发布的版本目录。
ssm49v7z2#
解决方案:块
只在导入已发布版本目录的项目中需要。在定义版本目录的项目中不需要。请从 *.toml文件构建版本目录:
要将版本目录发布到mavenLocal并设置坐标${my.groupId}:${my.artifactId}:${my.version}
其他项目现在可以使用引用versionCatalog
ljo96ir53#
还可以使用以下方法发布版本目录:
在上面的示例中,版本目录本身包含TOML文件的版本。直接发布对象而不是使用组件versionCatalog的唯一区别是,当您将对象作为组件发布时,TOML文件会在原始对象之前添加以下内容:
目前,我不知道拥有元数据是否有用。