Note that there are some explanatory texts on larger screens.

plurals
  1. POCreate multi-module project in maven
    text
    copied!<p>I'd like to create multimodule standalone application with maven. </p> <p>In my case I'd like to make 'Loader' project (.jar) contains all other projects. But now I have just set of .jar files (loader.jar, crawler1.jar ... etc)</p> <p><em>loader's .pom</em>:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;com.javanix.jmetalcrawler&lt;/groupId&gt; &lt;artifactId&gt;loader&lt;/artifactId&gt; &lt;version&gt;1.0&lt;/version&gt; &lt;build&gt; &lt;pluginManagement&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; &lt;configuration&gt; &lt;source&gt;1.6&lt;/source&gt; &lt;target&gt;1.6&lt;/target&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;/pluginManagement&gt; &lt;/build&gt; &lt;/project&gt; </code></pre> <p><em>subproject's .pom</em>:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;com.javanix.jmetalcrawler&lt;/groupId&gt; &lt;artifactId&gt;Crawler-1&lt;/artifactId&gt; &lt;version&gt;1.0&lt;/version&gt; &lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;com.javanix.jmetalcrawler&lt;/groupId&gt; &lt;artifactId&gt;loader&lt;/artifactId&gt; &lt;version&gt;1.0&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt; &lt;build&gt; &lt;pluginManagement&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt; &lt;configuration&gt; &lt;source&gt;1.6&lt;/source&gt; &lt;target&gt;1.6&lt;/target&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt; &lt;/pluginManagement&gt; &lt;/build&gt; &lt;/project&gt; </code></pre> <p><em>parent's .pom</em>:</p> <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; &lt;groupId&gt;com.javanix.jmetalcrawler&lt;/groupId&gt; &lt;artifactId&gt;parent&lt;/artifactId&gt; &lt;version&gt;1.0&lt;/version&gt; &lt;packaging&gt;pom&lt;/packaging&gt; &lt;name&gt;jMetalCrawler&lt;/name&gt; &lt;modules&gt; &lt;module&gt;Crawler-1&lt;/module&gt; &lt;module&gt;Loader&lt;/module&gt; &lt;/modules&gt; &lt;/project&gt; </code></pre> <p><strong>Lifecycle</strong>:</p> <ol> <li>compile 'Loader' (has interfaces/abstract classes)</li> <li>compile/package 'crawler1' (as it depends on 'Loader' project)</li> <li>compile/package 'crawler2' (as it depends on 'Loader' project)</li> <li>package loader with compiled 'crawler' projects</li> </ol> <p><strong>P.S.</strong>:</p> <ol> <li>Thanks to Adrian Shum , he gave an idea to make my project clearer</li> <li>After restructure my project in 'Launcher' project we can add dependencies via <code>maven-assembly-plugin</code> (@see <a href="http://rombertw.wordpress.com/2010/05/14/maven-recipe-building-an-aggregate-jar/" rel="nofollow">http://rombertw.wordpress.com/2010/05/14/maven-recipe-building-an-aggregate-jar/</a>)</li> </ol>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload