Maven JAR with Dependencies

From NovaOrdis Knowledge Base
Revision as of 04:53, 5 November 2016 by Ovidiu (talk | contribs) (Created page with "!!!Jar With Dependencies {{{ <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

!!!Jar With Dependencies

{{{ <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
 <id>jar-with-dependencies</id>
 <formats>
   <format>jar</format>
 </formats>
 <includeBaseDirectory>false</includeBaseDirectory>
 <dependencySets>
   <dependencySet>
     <unpack>true</unpack>
     <scope>runtime</scope>
   </dependencySet>
 </dependencySets>
 <fileSets>
   <fileSet>
     <directory>${project.build.outputDirectory}</directory>
   </fileSet>
 </fileSets>

</assembly> }}}


!!!Create an executable jar

{{{ <project>

 [...]
 <build>
   [...]
   <plugins>
     <plugin>
       <artifactId>maven-assembly-plugin</artifactId>
       <version>2.2-beta-5</version>
       <configuration>
         [...]
         <archive>
           <manifest>
             <mainClass>org.sample.App</mainClass>
           </manifest>
         </archive>
       </configuration>
       [...]
     </plugin>
     [...]

</project>

}}}







!!!Create an assembly file without any suffix

By default, the assembly name is the <projectname>-<assemblyid>.<ext> If I just want it to be <projectname>.<ext>, don't use any {{{

   <id>...</id>

}}} in the assembly descriptor.

!!!Creating two assemblies for the same project

{{{ <plugin>

  <artifactId>maven-assembly-plugin</artifactId>
     <executions>
         <execution>
             <id>jar-with-all-dependencies</id>

<phase>package</phase>

              <goals>
                  <goal>single</goal>
              </goals>
              <configuration>
                  <descriptors>
                     <descriptor>src/main/assembly/jar-with-all-dependencies.xml</descriptor>
                  </descriptors>
                  <archive>
                     <manifest>
                         <mainClass>${exec.main.class}</mainClass>
                     </manifest>
                  </archive>
              </configuration>
          </execution>
          <execution>
              <id>distribution-bundle</id>
              <phase>package</phase>
              <goals>
                    <goal>single</goal>
              </goals>
              <configuration>
                    <descriptors>
                           <descriptor>src/main/assembly/distribution-bundle.xml</descriptor>
                    </descriptors>
              </configuration>
          </execution>
         </executions>
</plugin>

}}}