I'd like to use the local Maven repository (at ~/.m2/repository
by default) to find a dependency for a Clojure project built by boot.
I am quite certain that the dependency is in the repository:
$ ls ~/.m2/repository/ags799/boot-docker/0.0.0-7-gd5196b9-dirty/
_maven.repositories
boot-docker-0.0.0-7-gd5196b9-dirty.jar
boot-docker-0.0.0-7-gd5196b9-dirty.pom
I'm quite certain that my project properly refers to the dependency. This is my build.boot
(set-env! :dependencies `[[org.clojure/clojure ~(clojure-version)]
[ags799/boot-docker "0.0.0-7-gd5196b9-dirty.jar"]])
(task-options!
pom {:project 'example
:version "0.0.0"}
aot {:namespace #{'example.core}}
jar {:main 'example.core})
However, when I run boot repl
, I get this:
java.lang.Thread.run Thread.java: 745
java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 617
java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 1142
org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run RunnableErrorForwarder.java: 60
org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run WagonRepositoryConnector.java: 669
org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap WagonRepositoryConnector.java: 941
org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap WagonRepositoryConnector.java: 947
org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact ags799:boot-docker:jar:0.0.0-7-gd5196b9-dirty.jar in clojars (https://repo.clojars.org/)
artifact: #object[org.sonatype.aether.util.artifact.DefaultArtifact 0xa82 java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 61to java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 114he org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run RunnableErrorForwarder.java: 6rtorg.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.run WagonRepositoryConnector.java: 66ul org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap WagonRepositoryConnector.java: 94ot org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap WagonRepositoryConnector.java: 94:1 org.sonatype.aether.transfer.ArtifactNotFoundException: Could not find artifact ags799:boot-docker:jarlu artifact: #object[org.sonatype.aether.util.artifact.DefaultArtifact 0xa82 java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecirty.jar in clojars (https://repo.clojars.org/)
result: #object[org.sonatype.aether.resolution.DependencyResult 0x5a37d3ed "[org.clojure:clojure:jar:1.8.0 < maven-central (https://repo1.maven.org/maven2, releases+snapshots), null < null]"]
clojure.lang.ExceptionInfo: Could not find artifact ags799:boot-docker:jar:0.0.0-7-gd5196b9-dirty.jar in clojars (https://repo.clojars.org/)
line: 3
I have also tried manually setting boot's path to the local Maven repository by including :local-repo "~/.m2/repository"
in the set-env!
command. This does not change the output.
I have also tried replacing ~
in this path with the explicit $HOME
path (/Users/andrew
). This does not change the output.
This is my project's boot.properties
:
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.8.0
BOOT_VERSION=2.7.2
How can my project use the local Maven repository for finding dependencies? Many thanks.
The dependency declaration, should it include .jar
at the end?
i.e. Shouldn't it be like this?
(set-env! :dependencies `[[org.clojure/clojure ~(clojure-version)]
[ags799/boot-docker "0.0.0-7-gd5196b9-dirty"]])