Opened 5 years ago

Closed 5 years ago

#418 closed defect (invalid)

maven-embedder needs maven on classpath in order to compile

Reported by: Mark Evenson Owned by:
Priority: major Milestone: 1.5.0
Component: abcl-contrib Version: 1.5.0-dev
Keywords: github-issue abcl-asdf Cc:
Parent Tickets:

Description

From Alan <https://github.com/armedbear/abcl/issues/10>:

[…] maven-embedder.lisp needs to be recompiled when abcl-asdf is required. Periodically I tear my hair out trying to figure out how to make an initial test run of abcl.jar how to know that.

What do you think of wrapping the first part (up until init is defined) and then calling init inside an eval-when?

Might be nice to add a build target that installs maven if mvn isn't on PATH.

@@ -41,6 +41,7 @@ Test:
 
 |#
 
+(eval-when (:compile-toplevel  :load-toplevel :execute)
 (defparameter *maven-verbose* t
   "Stream to send output from the Maven Aether subsystem to, or NIL to muffle output")
 

@@ -222,7 +224,10 @@ of the mvn executable with an explicit value."
     (error "Please obtain and install maven-3.0.3 or later locally from <http://maven.apache.org/download.html>, then set ABCL-ASDF:*MVN-LIBS-DIRECTORY* to the directory containing maven-core-3.*.jar et. al."))
   (unless (ensure-mvn-version)
     (error "We need maven-3.0.3 or later."))  (add-directory-jars-to-class-path *mvn-libs-directory* nil)
-    (setf *init* t))
+  (setf *init* t))
+
+(init))
+

Change History (3)

comment:1 Changed 5 years ago by Mark Evenson

I don't have this issue as far as I know, but I will test on a new machine without Maven.

Adding a local Maven install under <file:///abcl/ext/> like the JUnit install <http://abcl.org/trac/browser/trunk/abcl/build.xml#L970> is definitely a good idea.

A future direction will be to include Maven in abcl-aio.jar in a loadable manner ala either Shade <https://maven.apache.org/plugins/maven-shade-plugin/> or One-JAR <http://one-jar.sourceforge.net/>. I don't fully understand the ramifications of combining all the difference licensing, so we may never be able to redistribute such an abcl-aio.jar but we can certainly distribute a build recipe for individual uses to accept the licenses at build-time.

comment:2 Changed 5 years ago by Mark Evenson

Unfortunately, this seems to be a side-effect of the work on the precompiler <bcl.org/trac/ticket/420>. Without <https://github.com/armedbear/abcl/pull/11/files> applied, this behavior doesn't exist.

comment:3 Changed 5 years ago by Mark Evenson

Resolution: invalid
Status: newclosed
Version: 1.5.0-dev

Confirmed as arising from work on precompiler. Closing.

Note: See TracTickets for help on using tickets.