【问题标题】:Where to put gradle dependencies block in kotlin native project generated by Intellij IDEA?Intellij IDEA生成的kotlin原生项目中的gradle依赖块放在哪里?
【发布时间】:2019-12-05 15:32:27
【问题描述】:

我正在尝试使用 Kotlin Native 制作我的第一个应用程序。我想将 TornadoFX 添加到我新创建的项目中。 我需要根据TornadoFX guide添加依赖

dependencies {
    compile 'no.tornado:tornadofx:x.y.z'
}

问题是 - 我不知道我把它放在哪里

这是我的 build.gradle 内容(由 IntelliJ IDEA 生成):

plugins {
    id 'org.jetbrains.kotlin.multiplatform' version '1.3.60'
}
repositories {
    mavenCentral()
}
kotlin {
    // For ARM, should be changed to iosArm32 or iosArm64
    // For Linux, should be changed to e.g. linuxX64
    // For MacOS, should be changed to e.g. macosX64
    // For Windows, should be changed to e.g. mingwX64
    mingwX64("mingw") {
        binaries {
            executable {
                // Change to specify fully qualified name of your application's entry point:
               entryPoint = 'sample.main'
                // Specify command-line arguments, if necessary:
                runTask?.args('')
            }
        }
    }
    sourceSets {
        // Note: To enable common source sets please comment out 'kotlin.import.noCommonSourceSets' property
        // in gradle.properties file and re-import your project in IDE.
        mingwMain {
        }
        mingwTest {
        }
    }
}

// Use the following Gradle tasks to run your application:
// :runReleaseExecutableMingw - without debug symbols
// :runDebugExecutableMingw - with debug symbols

我尝试过的地方:

1.顶级

> Could not find method compile() for arguments [no.tornado:tornadofx:1.7.19] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

2。 kotlin 内部{}

> Could not find method compile() for arguments [no.tornado:tornadofx:1.7.19] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

3.在 mingwMain{}

> Could not find method compile() for arguments [no.tornado:tornadofx:1.7.19] on object of type org.jetbrains.kotlin.gradle.plugin.mpp.DefaultKotlinDependencyHandler.

此外,当放在 mingwMain 中时,编译行会突出显示并显示通知 'compile' cannot be applied to '(java.lang.String)'

【问题讨论】:

  • 您好!您不能在 Native 项目中使用 TornadoFX,请查看它的 GH 中的this 问题。仅当您以 JVM 为目标时才能使用此框架。要查找适用的库,请查看 herehere

标签: gradle intellij-idea tornadofx kotlin-native


【解决方案1】:

对于 Kotlin 多平台插件,依赖块应该进入每个源集。但是,没有称为compile 的类型。相反,您可以使用implementation 或您可以在documentation 中了解的其他类型之一。

例子:

sourceSets {
    mingwMain {
        dependencies {
            implementation 'no.tornado:tornadofx:x.y.z'
        }
    }
}

顺便说一句,如果您正在编写 Kotlin 项目,为什么要使用 Groovy DSL 而不是 Kotlin DSL? :-)

【讨论】:

    【解决方案2】:

    正如this comment 所指出的,我们不能在 Kotlin Native 中使用 TornadoFX,所以我从一开始就做错了一切,这并不是一个真正的 gradle 问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-09
      相关资源
      最近更新 更多