scalabuild-systemammonitemill

mill: Failed resolvedAmmoniteReplIvyDeps


I have following very simple module definition in build.src

import mill._
import mill.bsp.BSP.millSourcePath
import mill.scalalib.{JavaModule, ScalaModule}

object scalaMod0 extends ScalaModule {
  override def scalaVersion = "2.13.6"
}

Mill version is 0.9.9

Then I try to run

mill show scalaMod0.resolvedAmmoniteReplIvyDeps

1/1] show interp.watchValue millSourcePath: /home/jk/workspace.exp/hands-on-scala/mill01

[1/1] show > [9/9] scalaMod0.resolvedAmmoniteReplIvyDeps | Downloading [2/2] artifacts (~0/0 bytes)
1 targets failed
show 1 targets failed
scalaMod0.resolvedAmmoniteReplIvyDeps 
Resolution failed for 1 modules:
--------------------------------------------
  com.lihaoyi:ammonite_2.13.6:2.3.8-65-0f0d597f 
    not found: /home/jk/.ivy2/local/com.lihaoyi/ammonite_2.13.6/2.3.8-65-0f0d597f/ivys/ivy.xml
    not found: https://repo1.maven.org/maven2/com/lihaoyi/ammonite_2.13.6/2.3.8-65-0f0d597f/ammonite_2.13.6-2.3.8-65-0f0d597f.pom

The contents of https://repo1.maven.org/maven2/com/lihaoyi/ammonite_2.13.6 are following:

com/lihaoyi/ammonite_2.13.6

../
2.3.8-122-9be39deb/                               2021-05-17 21:19         -      
2.3.8-123-0b9a8c9b/                               2021-05-18 14:20         -      
2.3.8-124-2da846d2/                               2021-05-19 04:57         -      
2.3.8-125-f6bb1cf9/                               2021-06-08 13:15         -      
2.3.8-67-4b6c67db/                                2021-05-17 19:50         -      
2.4.0/                                            2021-06-08 13:25         -      
2.4.0-10-40f87721/                                2021-07-27 12:49         -      
2.4.0-11-5b9ff5e7/                                2021-07-27 12:57         -      
2.4.0-12-69f45b4b/                                2021-07-27 13:05         -      
2.4.0-13-6ffcb9ff/                                2021-07-30 16:49         -      
2.4.0-14-4824b429/                                2021-08-02 15:59         -      
2.4.0-17-6dbd7856/                                2021-08-30 14:06         -      
2.4.0-18-12c9e33e/                                2021-09-01 15:35         -      
2.4.0-19-f4790b61/                                2021-09-01 16:24         -      
2.4.0-20-f3d8171f/                                2021-09-09 16:33         -      
2.4.0-22-a70409dc/                                2021-09-09 23:09         -      
2.4.0-23-76673f7f/                                2021-09-16 16:30         -      
2.4.0-5-534c9436/                                 2021-07-15 18:25         -      
2.4.0-6-426d8ae5/                                 2021-07-27 10:13         -      
2.4.0-9-0017ff97/                                 2021-07-27 11:59         -      
maven-metadata.xml                                2021-09-16 16:32      1175      
maven-metadata.xml.md5                            2021-09-16 16:32        32      
maven-metadata.xml.sha1                           2021-09-16 16:32        40      
maven-metadata.xml.sha256                         2021-09-16 16:32        64      
maven-metadata.xml.sha512                         2021-09-16 16:32       128      
        

So the requested dir 2.3.8-65-0f0d597f does not exist.

How can I fix this?

Where is this 2.3.8-65-0f0d597f configured or selected? Why does mill want exactly this non-existing ammonite version?

When I start my local installed ammonite, it shows following version information:

amm
Loading...
Welcome to the Ammonite Repl 2.2.0 (Scala 2.13.3 Java 11.0.11)

Thank you for your help!


Solution

  • This is already discussed in the mill discussions forum (https://github.com/com-lihaoyi/mill/discussions/1396).

    I'm mostly quoting an adapted version here:

    Mill will by default pick the same ammonite version which it uses internally. But as ammonite releases need to match the full Scala version, and the pre-selected ammonite version (2.3.8-65-0f0d597f) wasn't released for Scala 2.13.6, you need to specify another ammonite version by overriding def ammoniteVersion.

    For example:

    import mill._
    import mill.scalalib.ScalaModule
    
    object scalaMod0 extends ScalaModule {
      override def scalaVersion = "2.13.6"
      override def ammoniteVersion = "2.4.0"
      // ...
    }