(ns cork.screw.maven
  (:import [org.apache.maven.cli ConsoleDownloadMonitor]
           [org.apache.maven.embedder MavenEmbedder
            MavenEmbedderConsoleLogger PlexusLoggerAdapter]
           [org.apache.maven.monitor.event DefaultEventMonitor]))

(let [maven (MavenEmbedder.)
      basedir "/home/phil/src/corkscrew"
      pom-file "/home/phil/src/corkscrew/pom.xml"]
  (.setClassLoader maven (.getContextClassLoader
                          (Thread/currentThread)))
  (.setLogger maven (MavenEmbedderConsoleLogger.))
  (.start maven))

;; Trying to translate the setUp method from:
;; http://p.hagelb.org/MavenEmbedderTest.java.html

;; Results in this error:
;; org.apache.maven.embedder.MavenEmbedderException: Cannot lookup required component. (maven.clj:0)
;;  at clojure.lang.Compiler.eval(Compiler.java:4543)
;;  at clojure.lang.Compiler.load(Compiler.java:4857)
;;  at clojure.lang.Compiler.loadFile(Compiler.java:4824)
;;  at clojure.lang.RT$4.invoke(RT.java:273)
;;  at swank.commands.basic$compile_file_for_emacs_STAR___733.invoke(basic.clj:109)
;;  at swank.commands.basic$compile_file_for_emacs__736.invoke(basic.clj:126)
;;  at clojure.lang.Var.invoke(Var.java:354)
;;  at cork.screw.maven$eval__2058.invoke(NO_SOURCE_FILE)
;;  at clojure.lang.Compiler.eval(Compiler.java:4532)
;;  at clojure.core$eval__3990.invoke(core.clj:1728)
;;  at swank.core$eval_in_emacs_package__304.invoke(core.clj:58)
;;  at swank.core$eval_for_emacs__381.invoke(core.clj:126)
;;  at clojure.lang.Var.invoke(Var.java:354)
;;  at clojure.lang.AFn.applyToHelper(AFn.java:179)
;;  at clojure.lang.Var.applyTo(Var.java:463)
;;  at clojure.core$apply__3243.doInvoke(core.clj:390)
;;  at clojure.lang.RestFn.invoke(RestFn.java:428)
;;  at swank.core$eval_from_control__307.invoke(core.clj:65)
;;  at swank.core$spawn_worker_thread__404$fn__435$fn__437.invoke(core.clj:168)
;;  at clojure.lang.AFn.applyToHelper(AFn.java:171)
;;  at clojure.lang.AFn.applyTo(AFn.java:164)
;;  at clojure.core$apply__3243.doInvoke(core.clj:390)
;;  at clojure.lang.RestFn.invoke(RestFn.java:428)
;;  at swank.core$spawn_worker_thread__404$fn__435.doInvoke(core.clj:164)
;;  at clojure.lang.RestFn.invoke(RestFn.java:402)
;;  at clojure.lang.AFn.run(AFn.java:37)
;;  at java.lang.Thread.run(Thread.java:636)
;; Caused by: org.apache.maven.embedder.MavenEmbedderException: Cannot lookup required component.
;;  at org.apache.maven.embedder.MavenEmbedder.start(MavenEmbedder.java:644)
;;  at cork.screw.maven$eval__2064.invoke(maven.clj:13)
;;  at clojure.lang.Compiler.eval(Compiler.java:4532)
;;  ... 26 more
;; Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: Component descriptor cannot be found in the component repository: org.apache.maven.project.MavenProjectBuilder.
;;  at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:323)
;;  at org.codehaus.plexus.embed.Embedder.lookup(Embedder.java:78)
;;  at org.apache.maven.embedder.MavenEmbedder.start(MavenEmbedder.java:610)
;;  ... 28 more

Generated by Phil Hagelberg using scpaste at Tue Sep 8 20:50:34 2009. PDT. (raw)