Fork me on GitHub
#tools-deps
<
2022-08-20
>
grzm21:08:15

I'm trying to use clojure.tools.deps to include a maven dependency with a definition like:

<dependency>
  <groupId>io.envoyproxy.controlplane</groupId>
  <artifactId>java-control-plane</artifactId>
  <version>0.1.32</version>
  <type>pom</type>
</dependency>
That <type>pom</type> is tripping me up. Is there a way to reference this type of dependency in deps.edn ? (https://search.maven.org/artifact/io.envoyproxy.controlplane/java-control-plane/0.1.32/pom for a direct link)

grzm21:08:53

Looks like the answer is :extension "pom"

clj -Sdeps '{:deps {io.envoyproxy.controlplane/java-control-plane {:mvn/version "0.1.32", :extension "pom"}}}'

grzm21:08:02

(Not sure yet if that's gonna do what I hope it does…, but we'll see)

grzm21:08:58

Looks like what I really wanted was one of the modules in that pom: io.envoyproxy.controlplane/api {:mvn/version "0.1.32"}

seancorfield22:08:30

I think the pom type is what's called a BOM -- Bill of Materials -- and that's not supported by t.d.a. yet so you have to explicitly include the specific dependencies from the BOM directly.

grzm22:08:44

Makes sense. I really only want that module anyway. Circuitous way to find it, but I did.

1
Alex Miller (Clojure team)22:08:27

confirming what Sean said - BOM / pom deps not supported