java - How to use maven assembly plugin to exclude a package from dependency jar? -


i'm using maven assembly plugin package distribution of project contains lib folder dependency jars, config folder resources , jar file containing project class files. need exclude package 1 of dependency jars in lib folder.

the assembly plugin has option unpack dependency jars, , if used can exclude package assembly.xml so:

<assembly>     <formats>         <format>tar</format>     </formats>     <includebasedirectory>false</includebasedirectory>     <dependencysets>         <dependencyset>             <unpack>true</unpack>             <useprojectartifact>false</useprojectartifact>             <outputdirectory>./${project.build.finalname}/lib</outputdirectory>             <scope>runtime</scope>             <unpackoptions>                 <excludes>                     <exclude>**/excludedpackage/**<exclude>                 </excludes>             </unpackoptions>         </dependencyset>     </dependencysets> </assembly> 

my question is, how can exclude package dependency jar without using unpack (i.e. keeping dependencies packed jars)? ideally i'd solution can done using assembly plugin - if that's not possible simplest way achieve want do?

i don't think can repack jar after has been unpacked , filtered. submit enhancement-request @ maven assembly plugin jira.


a (complicated) workaround use maven-dependency-plugin unpack project's dependency want exclude from, use maven-jar-plugin jar classes again excluding package in new jar , declare <files> element maven-assembly-plugin particular dependency.

a sample configuration be

<plugin>     <artifactid>maven-dependency-plugin</artifactid>     <version>2.10</version>     <executions>         <execution>             <id>unpack</id>             <goals>                 <goal>unpack-dependencies</goal>             </goals>             <phase>prepare-package</phase>             <configuration>                 <includeartifactids><!-- include here dependency want exclude --></includeartifactids>                 <outputdirectory>${project.build.directory}/unpack/temp</outputdirectory>             </configuration>         </execution>     </executions> </plugin> <plugin>     <artifactid>maven-jar-plugin</artifactid>     <version>2.6</version>     <executions>         <execution>             <id>repack</id>             <goals>                 <goal>jar</goal>             </goals>             <phase>prepare-package</phase>             <configuration>                 <classesdirectory>${project.build.directory}/unpack/temp</classesdirectory>                 <excludes>                     <exclude>**/excludedpackage/**</exclude>                 </excludes>                 <outputdirectory>${project.build.directory}/unpack</outputdirectory>                 <finalname>wonderful-library-repackaged</finalname> <!-- give proper name here -->             </configuration>         </execution>     </executions> </plugin> 

then in assembly configuration, have:

<files>     <file>         <source>${project.build.directory}/unpack/wonderful-library-repackaged.jar</source>         <outputdirectory>/${project.build.finalname}/lib</outputdirectory>     </file> </files> 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -