Mill (https://github.com/com-lihaoyi/mill) is the second-most-common Scala build tool after sbt. internal/maven/sbt.go already parses build.sbt and sbt's dependencyDot output; Mill has no equivalent parser, so a Mill project's declared dependencies are invisible.
Mill declares dependencies as string literals inside build.mill (Mill 0.12+) or build.sc (older):
def ivyDeps = Seq(
ivy"org.typelevel::cats-core:2.12.0", // :: is Scala cross-versioned
ivy"com.google.guava:guava:33.2.1-jre", // : is a plain Maven coordinate
)
Mill 0.12+ also accepts mvn"..." as an alias for ivy"...". Both forms map to Maven coordinates: :: expands to groupId:artifactId_<scalaBinaryVersion>:version (the binary version can be left as-is in the raw name, matching how sbt.go handles %%), and single : is groupId:artifactId:version verbatim.
A regex over ivy"..." / mvn"..." literals would give declared-dependency coverage on par with the existing build.sbt parser. Registration:
core.Register("maven", core.Manifest, &millParser{}, core.ExactMatch("build.mill", "build.sc"))
Related: #77 (JVM row) tracks other Maven-ecosystem format additions.
Mill (https://github.com/com-lihaoyi/mill) is the second-most-common Scala build tool after sbt.
internal/maven/sbt.goalready parsesbuild.sbtand sbt'sdependencyDotoutput; Mill has no equivalent parser, so a Mill project's declared dependencies are invisible.Mill declares dependencies as string literals inside
build.mill(Mill 0.12+) orbuild.sc(older):Mill 0.12+ also accepts
mvn"..."as an alias forivy"...". Both forms map to Maven coordinates:::expands togroupId:artifactId_<scalaBinaryVersion>:version(the binary version can be left as-is in the raw name, matching howsbt.gohandles%%), and single:isgroupId:artifactId:versionverbatim.A regex over
ivy"..."/mvn"..."literals would give declared-dependency coverage on par with the existingbuild.sbtparser. Registration:Related: #77 (JVM row) tracks other Maven-ecosystem format additions.