【问题标题】:Publishing Gradle version catalog to maven local将 Gradle 版本目录发布到本地 Maven
【发布时间】:2022-01-29 23:31:57
【问题描述】:

我正在尝试将 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。

我正在使用带有插件版本目录、maven-publish 的 gradle 版本 7.3.3。我将我的项目推送到github

非常感谢任何帮助!

【问题讨论】:

    标签: maven gradle build.gradle version publish


    【解决方案1】:

    解决方案:块

    // settings.gradle.kts
    
    versionCatalogs {
        ...
    }
    

    仅用于导入已发布版本目录的项目。在定义版本目录的项目中不需要它。 而是从 *.toml 文件构建版本目录:

    // build.gradle.kts 
    
    catalog {
        versionCatalog {
            from(files("./gradle/quarkus.versions.toml"))
        }
    }
    

    为了将版本目录发布到 mavenLocal 并设置坐标 ${my.groupId}:${my.artifactId}:${my.version}

    // settings.gradle.kts 
    
    rootProject.name = "${my.groupId}"
    
    // build.gradle.kts
    
    group = "${my.groupId}"
    version = "${my.version}"
    

    其他项目现在可以引用 versionCatalog 了

    // settings.gradle.kts
    
    rootProject.name = "version-catalog-import"
    
    enableFeaturePreview("VERSION_CATALOGS")
    
    dependencyResolutionManagement {
        repositories {
            mavenLocal()
        }
    
        versionCatalogs { 
            create("${my.reference}").from("${my.groupId}:${my.artifactId}:${my.version}")
        }
    }
    
    // build.gradles.kts
    
    plugins {
        `kotlin-dsl`
        `version-catalog`
    }
    
    dependencies {
        implementation(${my.reference})
    }
    

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 2016-03-28
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多