Skip to content

Problems with Private Repositories #838

@guv

Description

@guv

For my private Nexus repository I use the following setup in project.clj:

 :repositories ^:replace [["releases" {:url "https://MYREPOSITORY.TLD/content/repositories/releases"}]
                           ["snapshots" {:url "https://MYREPOSITORY.TLD/content/repositories/snapshots"}]]

This works like a charm in Leiningen (Leiningen 2.5.0 on Java 1.8.0_40 64-Bit Server VM) when I also provide my certificate's public key since the server uses a self-signed certificate. This is done in profiles.clj as follows:

{:user {:certificates ["/home/MYUSER/.lein/MYREPOSITORY.pem"]}}

It is also possible to specify the :certificates settings in the actual project.clj.

However, CCW couldn't handle this pre 0.32 and also does not handle this well in 0.33.

With the :certificates settings in profiles.clj I get the following error:

Could not transfer artifact lein-pprint:lein-pprint:pom:1.1.2 from/to releases (https://MYREPOSITORY.TLD/content/repositories/releases): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

With the :certificates settings in project.clj the following error is reported:

java.lang.IllegalArgumentException: No matching field found: getConnectionManager for class org.apache.maven.wagon.providers.http.HttpWagon
 at clojure.lang.Reflector.getInstanceField (Reflector.java:271)
    clojure.lang.Reflector.invokeNoArgInstanceMember (Reflector.java:315)
    leiningen.core.ssl/fn (ssl.clj:91)
    clojure.lang.AFn.applyToHelper (AFn.java:154)
    clojure.lang.AFn.applyTo (AFn.java:144)
    clojure.core$apply.invoke (core.clj:624)
    clojure.core$memoize$fn__5097.doInvoke (core.clj:5846)
    clojure.lang.RestFn.invoke (RestFn.java:408)
    clojure.lang.Var.invoke (Var.java:379)
    leiningen.core.project$load_certificates.invoke (project.clj:764)
    leiningen.core.project$init_project.invoke (project.clj:878)
    leiningen.core.project$read.invoke (project.clj:952)
    leiningen.core.project$read.invoke (project.clj:953)
    leiningen.core.main$_main$fn__6160.invoke (main.clj:388)
    leiningen.core.main$_main.doInvoke (main.clj:385)
    clojure.lang.RestFn.applyTo (RestFn.java:137)
    clojure.core$apply.invoke (core.clj:624)
    ccw.leiningen.main$_main.doInvoke (main.clj:66)
    clojure.lang.RestFn.invoke (RestFn.java:3894)
    clojure.lang.Var.invoke (Var.java:676)
    clojure.lang.AFn.applyToHelper (AFn.java:403)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.core$apply.invoke (core.clj:624)
    clojure.main$main_opt.invoke (main.clj:315)
    clojure.main$main.doInvoke (main.clj:420)
    clojure.lang.RestFn.invoke (RestFn.java:3894)
    clojure.lang.Var.invoke (Var.java:676)
    clojure.lang.AFn.applyToHelper (AFn.java:403)
    clojure.lang.Var.applyTo (Var.java:700)
    clojure.main.main (main.java:37)

Both cases work for lein deps and lein repl on command line.

The show stopper here is that although all dependencies are available in the local .m2 folder, CCW tries to download them anyway and no REPL is started, which makes me unable to get any work done with CCW 0.33 on these projects. :(

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions