Mill Build Tool, как использовать `evicted` - PullRequest
0 голосов
/ 25 сентября 2019

Я хочу запустить evicted в моем Mill -проекте.

С SBT это можно сделать в sbt-console, используя:

sbt> evicted

Возвращает список предупреждений о конфликтах версий:

[warn] Found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[warn]  * com.typesafe:ssl-config-core_2.13:0.3.8 is selected over 0.4.0
[warn]      +- com.typesafe.play:play-ws-standalone_2.13:2.0.6    (depends on 0.3.8)
[warn]      +- com.typesafe.play:play_2.13:2.7.3 ()               (depends on 0.3.8)
[warn]      +- com.typesafe.akka:akka-stream_2.13:2.5.23 ()       (depends on 0.4.0)
....

Как это делается с Mill?

Я попробовал mill-console, нет команды (mill resolve _), а также Google не может помочь.

1 Ответ

1 голос
/ 25 сентября 2019

Полагаю, вы ищете возможные проблемы / предупреждения classpath, которые являются результатом различных версий одних и тех же зависимостей, извлекаемых транзитивными зависимостями.

В mill вы можете использовать цель ivyDepsTreeотобразить дерево со всеми транзитивными зависимостями плюща.Это дерево также содержит сведения о корректировках версий.Эти строки будут напечатаны разными цветами.По умолчанию оранжевый для изменения версии микро / патча, красный для незначительных изменений версии.

Давайте рассмотрим следующую выдержку из случайного проекта Java:

$ mill __.ivyDepsTree
...
[416/426] <redacted>.test.ivyDepsTree
├─ com.lihaoyi:mill-contrib-testng:0.5.1-14-ef3708
│  ├─ org.scala-sbt:test-interface:1.0
│  └─ org.testng:testng:6.11 -> 6.14.2 (possible incompatibility)
│     ├─ com.beust:jcommander:1.72
│     └─ org.apache-extras.beanshell:bsh:2.0b6
├─ org.testng:testng:6.14.2
│  ├─ com.beust:jcommander:1.72
│  └─ org.apache-extras.beanshell:bsh:2.0b6
├─ de.tototec:de.tobiasroeser.lambdatest:0.7.0
├─ org.slf4j:slf4j-api:1.7.25
├─ ch.qos.logback:logback-classic:1.2.3
│  ├─ ch.qos.logback:logback-core:1.2.3
│  └─ org.slf4j:slf4j-api:1.7.25
├─ org.aspectj:aspectjrt:1.8.13
├─ org.fedorahosted.tennera:jgettext:0.15
│  ├─ antlr:antlr:2.7.7
│  └─ org.slf4j:slf4j-api:1.7.5 -> 1.7.25
├─ org.antlr:com.springsource.antlr:2.7.7
...

Вы можете увидеть некоторые изменения, потому чтоконфликтующих версий: org.slf4j:slf4j-api:1.7.5 -> 1.7.25 (обновление микро версии) и org.testng:testng:6.11 -> 6.14.2 (possible incompatibility) (незначительное обновление версии).

Кроме того, вы можете направить вывод в grep для фильтрации вывода, например, mill __.ivyDepsTree | grep "incompatibility".

И это похоже на годную к употреблению мельницу, эквивалентную sbt evicted.

$ mill __.ivyDepsTree | grep "incompatibility"
...
[416/426] <redacted>.test.ivyDepsTree 
│  └─ org.testng:testng:6.11 -> 6.14.2 (possible incompatibility)
│  ├─ org.hibernate:com.springsource.org.hibernate:3.2.6.ga -> 3.3.2.GA (possible incompatibility)
│  ├─ org.jboss.javassist:com.springsource.javassist:3.3.0.ga -> 3.9.0.GA (possible incompatibility)
│  └─ org.objenesis:objenesis:1.2 -> 2.6 (possible incompatibility)
│  │     └─ org.objenesis:objenesis:1.2 -> 2.6 (possible incompatibility)
│  │  │     └─ org.objenesis:objenesis:1.2 -> 2.6 (possible incompatibility)
│  │  │  └─ org.objenesis:objenesis:1.2 -> 2.6 (possible incompatibility)
│  │  └─ org.testng:testng:6.4 -> 6.14.2 (possible incompatibility)
│  └─ org.testng:testng:6.4 -> 6.14.2 (possible incompatibility)
│     │     └─ org.objenesis:objenesis:1.2 -> 2.6 (possible incompatibility)
│        └─ org.objenesis:objenesis:1.2 -> 2.6 (possible incompatibility)
...