Java Mailing List Archive

http://www.java2.5341.com/

Home » Maven Users List »

Re: [m2] assembly and use of dependencySet excludes

Stefano Fornari

2008-07-03


Author LoginPost Reply
If instead you want to do the opposite, unpacking a dependency but avoid to
copy the artifact under lib, you can just add a dependencySet with an
<exclude> for the artifact you do not want.

For example, let's say in the pom you have:

<dependency>
       <artifactId>connector-testing-framework</artifactId>
       <groupId>funambol</groupId>
       <version>7.0.0</version>
       <type>tar.gz</type>
</dependency>

In your assembly you need:

<dependencySet>
       <outputDirectory>(whatever)/lib</outputDirectory>
       <excludes>
          <exclude>funambol:connector-testing-framework</exclude>
       </excludes>
</dependencySet>
<dependencySet>
       <outputFileNameMapping></outputFileNameMapping>
       <outputDirectory></outputDirectory>
       <includes>
          <include>funambol:connector-testing-framework</include>
       </includes>
       <unpack>true</unpack>
</dependencySet>

If you miss the first dependencyCet, in addition to having the dependency
unpacked, the tar.gz file will be copied under lib (do not ask me why :) ).

HTH
Ste


On Tue, Jul 18, 2006 at 9:16 AM, Barrie Treloar <baerrach@(protected):

> For those that may be trying to work out how excludes works I'm
> posting to the list.
>
> There is probably a JIRA issue (I haven't looked) that will address
> pattern matching of excludes, there are comments in the code to
> indicate that this would be a good feature.
>
> To summarize my problem:
> I have a module called <project>-build which creates an assembly of
> all the other modules so that this can be given to our test team in
> one go. The problem I am having is that the assembly is not only
> copying the *-bin.zip files but also the *.jar files even though the
> dependency is only on the zip file.
>
> My pom has this in it:
>  <dependencies>
>     <dependency>
>       <groupId>GROUP</groupId>
>       <artifactId>A</artifactId>
>       <version>0.0.1-SNAPSHOT</version>
>       <classifier>bin</classifier>
>       <type>zip</type>
>     </dependency>
>     <dependency>
>       <groupId>GROUP</groupId>
>       <artifactId>B</artifactId>
>       <version>0.0.1-SNAPSHOT</version>
>       <classifier>bin</classifier>
>       <type>zip</type>
>     </dependency>
>     <dependency>
>       <groupId>GROUP</groupId>
>       <artifactId>C</artifactId>
>       <version>0.0.1-SNAPSHOT</version>
>       <type>ear</type>
>     </dependency>
>  </dependencies>
>
> To work around this, I am excluding the jars using the assembly below:
>
> <assembly>
>  <id>bin</id>
>  <formats>
>     <format>dir</format>
>  </formats>
>  <includeBaseDirectory>false</includeBaseDirectory>
>  <dependencySets>
>     <dependencySet>
>       <unpack>false</unpack>
>     <excludes>
>      <!--
>      There is little documentation on this format.
>      It is of the form of DefaultArtifact.getDependencyConflictId()
>      which is <groupId>:<artifactId>:<type>:<classifier>
>      or you can use the short form (hard coded into assembly) of
>      <groupId>:<artifactId>
>      This is a String equality match not a pattern match.
>      -->
>      <exclude>commons-lang:commons-lang</exclude>
>      <exclude>log4j:log4j</exclude>
>      <exclude>GROUP:A</exclude>
>      <exclude>GROUP:B</exclude>
>     </dependencySet>
>  </dependencySets>
> </assembly>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@(protected)
> For additional commands, e-mail: users-help@(protected)
>
>


--
Ste
©2008 java2.5341.com - Jax Systems, LLC, U.S.A.