Opened 8 years ago
Closed 8 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 8 years ago by
comment:2 Changed 8 years ago by
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 8 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
Version: | → 1.5.0-dev |
Confirmed as arising from work on precompiler. Closing.
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 anabcl-aio.jar
but we can certainly distribute a build recipe for individual uses to accept the licenses at build-time.