关于 kotlin:使用 build.gradle.kts 发布到 mavenLocal

publishing to mavenLocal using build.gradle.kts

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

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

1
2
3
4
5
6
7
8
9
10
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 和上面的警告。

尝试在 subprojects 块内添加 publishing 块的推荐路线(根据链接)会导致 intellij 中出现大量红色

enter

enter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 任务。如何应用插件的详细信息在这里,例如使用 Kotlin DSL 你会有:

1
2
3
plugins {
    maven
}

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

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