使用 build.gradle.kts 发布到 mavenLocal

Jan*_*ert 6 gradle kotlin gradle-kotlin-dsl

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

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

repositories {
    mavenLocal()
    jcenter()
}

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

作为使发布插件稳定的一部分,“发布 {}”块的“延迟配置”行为已被弃用。在 Gradle 5.0 中,“enableFeaturePreview('STABLE_PUBLISHING')”标志将被删除,新行为将成为默认行为。请将“enableFeaturePreview('STABLE_PUBLISHING')”添加到您的设置文件中,并通过发布到本地存储库来进行测试运行。如果所有工件都按预期发布,则无需执行其他操作。如果已发布的工件发生意外更改,请参阅迁移指南以获取更多详细信息: 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会导致 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
Run Code Online (Sandbox Code Playgroud)

Yon*_*bbs 4

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

plugins {
    maven
}
Run Code Online (Sandbox Code Playgroud)

然后,您只需运行该install任务,例如从您的 IDE(在您的情况下是 IntelliJ 中的 Gradle 窗口)或命令行,例如./gradlew install.

关于应用 Maven 插件,如果您是 Gradle 新手,您可能想了解 Gradle 插件 DSL(上面的代码片段是一个示例)。如果您不使用它,那么应用该插件的方式会略有不同(例如,您必须使用该apply命令)。这里有详细信息。请注意,是否使用 Gradle 插件 DSL 的决定与选择使用 Groovy 或 Kotlin 编写文件的语言不同build.gradle