#436: feature request maven exclude dependency ------------------------------+----------------- Reporter: aruttenberg | Owner: Type: enhancement | Status: new Priority: major | Milestone: Component: (A)MOP | Version: Resolution: | Keywords: Parent Tickets: | ------------------------------+-----------------
Comment (by aruttenberg):
Here's a snippet that poc shows how one can do this at the direct dependent level. {{{ (let* ((node (#"getRoot" (#"collectDependencies" (ensure-repository- system) (ensure-session) collect-request)))) (let ((evil (find-if (lambda(e) (equal (#"getArtifactId" (#"getArtifact" e)) "org.protege.editor.owl")) (jss::j2list (#"getChildren" node))))) (#"remove" (#"getChildren" node) evil) (let ((dependency-request (jss:new 'DependencyRequest)) }}}
For deeper dependents I think you need to use pass a `DependencyFilter` in the constructor of the `DependencyRequest`. See `PatternExclusionsDependencyFilter` and `OrDependencyFilter`
For syntax I might suggest using the syntax that `PatternExclusionsDependencyFilter` uses, so it would be:
(:mvn "net.sourceforge.owlapi/owlapi-distribution/4.2.6" :exclude (":org.protege.editor.owl:" ..)) for my example case of exclusion by artifactID
The patterns apparently support version ranges.
The MVN URL Scheme doesn't seem to provide for exclusions. If you used them then they would be the form for both the dependency and the exclusions - you still need to specify the exclusions separately.
https://ops4j1.jira.com/wiki/display/paxurl/Mvn+Protocol
I vote for the pattern over the URL
-- Ticket URL: http://abcl.org/trac/ticket/436#comment:1 armedbear http://abcl.org armedbear