| Line | |
|---|
| 1 | (in-package :asdf) |
|---|
| 2 | |
|---|
| 3 | ;; dependencies: a list of maven artifacts. color or slash separated |
|---|
| 4 | ;; components groupid:artifactid:versionid |
|---|
| 5 | |
|---|
| 6 | ;; managed-dependencies: a list of maven artifacts. If an dependency |
|---|
| 7 | ;; with same groupid and artifactid are encountered, the version |
|---|
| 8 | ;; specified here overrides. |
|---|
| 9 | |
|---|
| 10 | ;; exclusions: a list of partial maven artifacts |
|---|
| 11 | ;; groupid:artifactid. Dependencies with same groupid and artifactid are |
|---|
| 12 | ;; exluded |
|---|
| 13 | |
|---|
| 14 | (defclass mvn-module (component) |
|---|
| 15 | ((depends :initarg :dependencies :initform nil :accessor mvn-module-depends) |
|---|
| 16 | (excludes :initarg :exclusions :initform nil :accessor mvn-module-excludes) |
|---|
| 17 | (managed :initarg :managed-dependencies :initform nil :accessor mvn-module-managed))) |
|---|
| 18 | |
|---|
| 19 | (defmethod component-children ((c mvn-module)) |
|---|
| 20 | nil) |
|---|
| 21 | |
|---|
| 22 | ;;; ASDF problems: method is deprecated. How do we define MVN-MODULE, |
|---|
| 23 | ;;; a subclass of ASDF:COMPONENT, which has no corresponding pathname? |
|---|
| 24 | (defmethod source-file-type ((c mvn-module) (system parent-component)) :directory) |
|---|
| 25 | |
|---|
| 26 | (defmethod perform ((op compile-op) (c mvn-module))) |
|---|
| 27 | |
|---|
| 28 | (defmethod perform ((op prepare-op) (c mvn-module))) |
|---|
| 29 | |
|---|
| 30 | (defmethod perform ((operation load-op) (c mvn-module)) |
|---|
| 31 | (loop for path in (abcl-asdf:resolve-multiple-maven-dependencies |
|---|
| 32 | (mvn-module-depends c) (mvn-module-managed c) (mvn-module-excludes c)) |
|---|
| 33 | do |
|---|
| 34 | (unless (member path abcl-asdf::*added-to-classpath* :test 'equalp) |
|---|
| 35 | (jss::add-to-classpath path)))) |
|---|
| 36 | |
|---|
Note: See
TracBrowser
for help on using the repository browser.