1 year ago

#327293

test-img

codependent

Gradle 6.8 implementation scope mapped to runtime in the Maven pom.xml. Shouldn't it be compile?

In this Gradle 6.8 build.gradle there are a bunch of compile dependencies.

plugins {
    id 'java'
}


dependencies {
    compile "xxx:yyy.1.0.0"
}

With gradle install the generated pom looks as expected:

    <dependency>
      <groupId>xxx</groupId>
      <artifactId>yyy</artifactId>
      <version>1.0.0</version>
      <scope>compile</scope>
    </dependency>

Since compile is deprecated I changed it to implementation:

dependencies {
    implementation "xxx:yyy.1.0.0"
}

However now the gradle install command translates it as as runtime dep:

    <dependency>
      <groupId>xxx</groupId>
      <artifactId>yyy</artifactId>
      <version>1.0.0</version>
      <scope>runtime</scope>
    </dependency>

The doc states:

implementation (supersedes compile) — used for compilation and runtime

How come it isn't considered compile?

gradle

gradle-dependencies

0 Answers

Your Answer

Accepted video resources