java - Maven: How to have jar-with-dependencies exclude "provided" dependencies? -


i have maven scala project deployed on container , therefore mark several of dependencies scope provided meaning dependencies used compiling not taken account transitive resolution "provided @ runtime". however, when run following command, produces intended jar dependencies including dependencies marked provided.

mvn clean install assembly:assembly -ddescriptorid=jar-with-dependencies -dskiptests 

i tried existing answers problem e.g. excluding “provided” dependencies maven assembly reason produces incorrect choice of dependencies , missing main code. in op i'd find cleaner, more date solution problem ... there one?

you may better off different maven plugin. see difference between maven plugins ( assembly-plugins , jar-plugins , shaded-plugins. shade suit best in case. looking create referred uber-jar.

regarding shade, maven website:

this plugin provides capability package artifact in uber-jar, including dependencies , shade - i.e. rename - packages of of dependencies.

the goals shade plugin bound package phase in build lifecycle.

configuring shade plugin:

<project> ... <build>   <plugins>     <plugin>       <groupid>org.apache.maven.plugins</groupid>       <artifactid>maven-shade-plugin</artifactid>       <version>3.0.0</version>       <configuration>         <!-- put configurations here -->       </configuration>       <executions>         <execution>           <phase>package</phase>           <goals>             <goal>shade</goal>           </goals>         </execution>       </executions>     </plugin>   </plugins> </build> ... </project> 

note default implementation replaces project's artifact shade version. need both? here: attaching shaded artifact

merging several jars @ once not utter simplicity , shade has concept of resource transformers (link has more samples).

aggregating classes/resources several artifacts 1 uber jar straight forward long there no overlap. otherwise, kind of logic merge resources several jars required. resource transformers kick in.

the project site quite good. there lots of varied examples.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -