Today I tried to use leiningen on a development machine where I had set up a network-local nexus repository for my maven distribution management. And it took me some minutes to get leiningen to work, because it always failed with a message like this:
---------- 1 required artifact is missing. for artifact: org.apache.maven:super-pom:jar:2.0 from the specified remote repositories: clojure (http://mylocalrepository/nexus/content/groups/public), clojars (http://mylocalrepository/nexus/content/groups/public), clojure-snapshots (http://mylocalrepository/nexus/content/groups/public), central (http://mylocalrepository/nexus/content/groups/public) at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTra nsitively(DefaultArtifactResolver.java:324) at org.apache.maven.artifact.ant.DependenciesTask.doExecute(Dependencies Task.java:170) ... 34 more
I noticed that there was the URL to http://mylocalrepository in the error messages and that I probably hadn’t all the clojure stuff configured there. In fact, I didn’t think about that at all. I don’t want the clojure dependencies to live in that repository, so I have to exclude it from my maven mirror settings in USERDIR/.m2/settings.xml:
<mirrors> <mirror> <id>nexus</id> <!-- use this mirror for everything excluding clojars and clojure: --> <mirrorOf>*,!clojars,!clojure</mirrorOf> <!-- use this mirror for all external repositories: <mirrorOf>*</mirrorOf> --> <url>http://mylocalrepository/nexus/content/groups/public</url> </mirror> </mirrors>
After that leiningen downloaded all the dependencies and was generally more helpful. đ