--- | |
Including and Excluding Artifacts | |
--- | |
Barrie Treloar | |
--- | |
31-July-2006 | |
--- | |
~~ Copyright 2006 The Apache Software Foundation. | |
~~ | |
~~ Licensed under the Apache License, Version 2.0 (the "License"); | |
~~ you may not use this file except in compliance with the License. | |
~~ You may obtain a copy of the License at | |
~~ | |
~~ http://www.apache.org/licenses/LICENSE-2.0 | |
~~ | |
~~ Unless required by applicable law or agreed to in writing, software | |
~~ distributed under the License is distributed on an "AS IS" BASIS, | |
~~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
~~ See the License for the specific language governing permissions and | |
~~ limitations under the License. | |
~~ NOTE: For help with the syntax of this file, see: | |
~~ http://maven.apache.org/guides/mini/guide-apt-format.html | |
Including and Excluding Artifacts | |
Currently the include/exclude format is based upon the dependency conflict id | |
which has a form of: <<<groupId:artifactId:type:classifier>>>. A shortened | |
form of the dependency conflict id may also be used <<<groupId:artifactId>>>. | |
The check for inclusion/exclusion is done based on either the dependency | |
conflict id or the shortened form as a <<<String.equals()>>> so it must | |
be an identical match for it to be included or excluded. At present there is | |
no support for regular expressions. | |
This example excludes the log4j and commons-lang jar files from the assembly. | |
This would be useful when you are building a super distribution assembly which | |
contained sub distributions (i.e. other already assembled zips or tars) where | |
in your pom you are depenedent upon those distributions. But because the | |
distributions transitively depend upon the project's dependencies the assembly | |
also includes the jar files (which are already in the assemblies and don't | |
need to be duplicated) | |
Your pom might include something like: | |
----- | |
<dependencies> | |
<dependency> | |
<groupId>YOUR GROUP</groupId> | |
<artifactId>YOUR ARTIFACT</artifactId> | |
<version>YOUR VERSION</version> | |
<classifier>bin</classifier> | |
<type>zip</type> | |
</dependency> | |
----- | |
And then in your assembly you exclude all the jar dependencies pulled in | |
from the binary assembly. In this example the commons-lang and log4j jars | |
are included unnecessarily (as they are in the bin.zip file already) | |
----- | |
<dependencySets> | |
<dependencySet> | |
.... | |
<excludes> | |
<exclude>commons-lang:commons-lang</exclude> | |
<exclude>log4j:log4j</exclude> | |
</excludes> | |
</dependencySet> | |
.... | |
</dependencySets> | |
----- |