2

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?

codependent
  • 23,193
  • 31
  • 166
  • 308

0 Answers0