What exactly is "The plugins {} block must not be used here. If you need to apply a plugin imperatively"?
Asked Answered
W

0

9

I have a gradle project that uses kotlin dsl:

plugins {
    base
    kotlin("jvm") version "1.3.70" apply false
}


//val scalaV: String by project

//val ext = SpikeExt(this)



allprojects {
    apply(plugin = "java")
    apply(plugin = "scala")

    group = "com.tribbloids.scalaspike"
    version = "1.0.0-SNAPSHOT"

    repositories {
        mavenCentral()
        jcenter()
        maven("https://dl.bintray.com/kotlin/kotlin-dev")
    }

    dependencies {
    }
}

when I run gradlew build I encounter the following error:

FAILURE: Build failed with an exception.

* Where:
Script '/home/peng/git/scalaspike/build.gradle.kts' line: 1

* What went wrong:
The plugins {} block must not be used here. If you need to apply a plugin imperatively, please use apply<PluginType>() or apply(plugin = "id") instead.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 870ms

In the mean time, the exact identical line 1 works normal in the other project:

https://github.com/gradle/kotlin-dsl-samples/tree/master/samples/multi-kotlin-project

plugins {
    base
    kotlin("jvm") version "1.3.70" apply false
}

allprojects {

    group = "org.gradle.kotlin.dsl.samples.multiproject"

    version = "1.0"

    repositories {
        jcenter()
    }
}

dependencies {
    // Make the root project archives configuration depend on every sub-project
    subprojects.forEach {
        archives(it)
    }
}

So I have 2 questions:

  1. what does this mean?
  2. why the same thing works in the second project but fails on the first project? What is the difference?
Wimple answered 16/5, 2020 at 0:9 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.