com-lihaoyi / Ammonite

Scala Scripting

Home Page:http://ammonite.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A class in $ivy dependency cannot be found.

DavidPerezIngeniero opened this issue · comments

Environment:

  • Java 17.0.4
  • Scala 2.13
  • Ubuntu 20.04
  • Ammonite 2.5.1

Interactive session:

@ import $ivy.`io.kubernetes:client-java:16.0.0`
import $ivy.$ 

@ val b = new io.kubernetes.client.openapi.models.V1JobBuilder 
cmd1.sc:1: type V1JobBuilder is not a member of package io.kubernetes.client.openapi.models
val b = new io.kubernetes.client.openapi.models.V1JobBuilder
                                                ^
Compilation Failed

@ import io.kubernetes.client.openapi.models.V1JobBuilder 
cmd1.sc:51: object V1JobBuilder is not a member of package io.kubernetes.client.openapi.models
possible cause: maybe a semicolon is missing before `object V1JobBuilder`?
import io.kubernetes.client.openapi.models.V1JobBuilder
       ^
Compilation Failed

This class does exist and is public: https://github.com/kubernetes-client/java/blob/v16.0.0/fluent/src/main/java/io/kubernetes/client/openapi/models/V1JobBuilder.java, and I think it hasn't been mispelled.

package io.kubernetes.client.openapi.models;

public class V1JobBuilder extends V1JobFluentImpl<V1JobBuilder>

Many other classes from this dependency (kubernetes java client) can be imported without problems.

Latest Ammonite 2.5.4 also fails.

As SBT exhibits the same problem, I think the bug is related to Scala compiler.

scala/bug#12638

The right import is:

import $ivy.`io.kubernetes:client-java-extended:16.0.0`