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.