使用 build.gradle.kts 发布到 mavenLocal

publishing to mavenLocal using build.gradle.kts

我正在尝试将工件发布到 ~/.m2(maven-local),作为一个 Gradle 新手,我不确定我缺少什么

到目前为止我看到的所有示例都建议使用 publishing 块,当我 运行 任何 Gradle 命令时它会抛出弃用警告。 还包括没有任何 publishing 块的 maven-publish 插件会导致相同的警告。

repositories {
    mavenLocal()
    jcenter()
}

plugins {
    `maven-publish`
    kotlin("jvm") version("1.3.10")
    id("org.jetbrains.dokka") version "0.9.16"
}

As part of making the publishing plugins stable, the 'deferred configurable' behavior of the 'publishing {}' block has been deprecated. In Gradle 5.0 the 'enableFeaturePreview('STABLE_PUBLISHING')' flag will be removed and the new behavior will become the default. Please add 'enableFeaturePreview('STABLE_PUBLISHING')' to your settings file and do a test run by publishing to a local repository. If all artifacts are published as expected, there is nothing else to do. If the published artifacts change unexpectedly, please see the migration guide for more details: https://docs.gradle.org/4.10.2/userguide/publishing_maven.html#publishing_maven:deferred_configuration.

如果它真的发布到 maven-local,我现在可能忽略了警告,但它根本没有发布,gradle publishToMavenLocal 也没有,它只是说 BUILD SUCCESSFUL in __s 和上面的警告.

尝试将 publishing 块添加到 subprojects 块中的推荐路线(根据 link)会导致 intellij 出现大量红色

不确定那是不是 Kotlin DSL ...尝试在 Gradle 文档的 Kotlin DSL 版本上显示的其他内容:

知道我错过了什么吗?

这是我的 Gradle 版本和其他相关信息(IntelliJ 有 Kotlin 3.1.0)

gradle -version

------------------------------------------------------------
Gradle 4.10.2
------------------------------------------------------------

Build time:   2018-09-19 18:10:15 UTC
Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          1.8.0_151 (Oracle Corporation 25.151-b12)
OS:           Mac OS X 10.14.1 x86_64

我认为您需要做的就是应用 Maven 插件,然后 运行 install 任务。有关如何应用插件的详细信息 here,例如使用 Kotlin DSL,您将拥有:

plugins {
    maven
}

那么您只需 运行 install 任务,例如从您的 IDE (在您的情况下是 IntelliJ 中的 Gradle window )或命令行,例如./gradlew install.

关于应用 maven 插件,如果您是 Gradle 的新手,您可能想弄清楚 Gradle 插件 DSL(上面的代码片段是其中的一个示例)。如果您不使用它,那么您应用插件的方式会略有不同(例如,您必须使用 apply 命令)。有详情here。请注意,关于是否使用 Gradle 插件 DSL 的决定不同于使用 Groovy 或 Kotlin 作为您编写 build.gradle 文件的语言的选择。