ASDF-MVN-MODULE

Mark Evenson evenson at panix.com
Thu May 25 06:41:03 UTC 2017


On 4/27/17 22:48, Alan Ruttenberg wrote:
> Should have responded to this sooner.
> 
> The proposed change is to have a single form in the system definition that
> deals with all maven dependencies - that's the :mvn-module. It has the most
> important expressivity available in a POM, namely to list all dependencies,
> exclusions, and overrides (called managed depencies) which let you specify
> a specific version for a transitively gathered dependency.

After discussion, Alan's implementation of [MVN-MODULE][asdf-mvn-module]
has been added to abcl-1.5.0-dev.

To use MVN-MODULE, after ABCL-CONTRIB has been loaded, simply declare
the DEFSYSTEM dependency on ASDF-MVN-MODULE, e.g.

(defsystem foo
  :defsystem-depends-on (asdf-mvn-module)
  :components ((:mvn-module maven
		:dependencies
		("net.sourceforge.owlapi/pellet-cli-ignazio1977/2.4.0-ignazio1977"
		  "org.semanticweb.elk/elk-owlapi/0.4.3"
		  "net.sourceforge.owlapi/org.semanticweb.hermit/1.3.8.413"
		  "net.sourceforge.owlapi/owlapi-distribution/4.2.6"
		  "net.sourceforge.owlapi/owlexplanation/2.0.0"
		  "de.sciss/prefuse-core/1.0.1"
		  "de.sciss/prefuse-demos/1.0.1")
		:managed-dependencies
		("org.slf4j/slf4j-api/1.7.21"
		 "net.sourceforge.owlapi:owlapi-distribution:4.2.6")
		:exclusions
		("net.sourceforge.owlapi:owlapi-osgidistribution"
                 "edu.stanford.protege:org.protege.editor.owl")))

[asdf-mvn-module]:
https://github.com/armedbear/abcl/commit/b1d3df487f425f8edb55c48107b60c4190b5cdba

I consider ASDF-MVN-MODULE to be an interm solution, to eventually be
replaced by code which pushes dependency resolution into the ASDF plan
phase.  But [since integrating ASDF 3.3 into ABCL still has a few kinks
to work out][1], abcl-1.5.0 is long overdue, and Alan reports not being
able to use ABCL-ASDF's MVN component on loads of large Maven POM
dependency graphs without specifying exclusions, we include his working
code to ship with ABCL 1.5.0 (any day now…).  We will support the
ASDF:MVN-MODULE component syntax via the appropriate hooks into the
"better" underlying implementation when (if?) it arrives.

[1]: https://gitlab.common-lisp.net/mevenson/asdf/issues

 --
"A screaming comes across the sky.  It has happened before, but there
is nothing to compare to it now."



More information about the armedbear-devel mailing list