Fork me on GitHub
#boot
<
2018-09-24
>
vigilancetech04:09:10

how is one supposed to read boot show -p ? What do the checkmarks, exclamation points, and "X"s mean?

danm08:09:41

Hmm. I don't know what the ! means, but in Java you can only (I believe, certainly without a lot of messing about) have one version of a library running within an instance of the JVM at a time. So if you pull in lib A to your project and it requires lib X 1.0.1, and then also pull in lib B which requires lib X 1.2.6, then you'll get one or other of the versions of lib X loaded and functionality one of libs A or B wants might be missing, or work differently, or whatever

danm08:09:11

So I think the output is showing which libs are required by multiple things in your project, at different versions, and the tick shows the one that's actually being used and the cross the ones that have been ignored

danm08:09:58

I'd also be interested to find out what the ! means...

alexyakushev11:09:04

@vigilancetech I'm not completely sure, but here's how I read it: - near the exact version is the version that is picked for the classpath - near the exact version is the version that is required by some dependencies but is NOT picked for the classpath - [✔] near the artifact name means that the version Boot picks is the same which you explicitly asked for in build.boot - [!] near the artifact name means that the version in the classpath was somehow chosen from transitive dependencies, but Boot is not exactly sure if that's the one you want.

Alex Miller (Clojure team)12:09:27

I think all that comes from the pomegranate lib - maybe you could learn more there