{"id":888,"date":"2014-01-11T15:44:15","date_gmt":"2014-01-11T14:44:15","guid":{"rendered":"http:\/\/blog.rabahi.net\/?page_id=888"},"modified":"2017-05-09T15:16:27","modified_gmt":"2017-05-09T13:16:27","slug":"maven-survival-guide-2","status":"publish","type":"page","link":"https:\/\/blog.rabahi.net\/?page_id=888","title":{"rendered":"Maven Survival Guide"},"content":{"rendered":"<div id=\"toc_container\" class=\"no_bullets\"><p class=\"toc_title\">Contents<\/p><ul class=\"toc_list\"><li><a href=\"#Maven_options\"><span class=\"toc_number toc_depth_1\">1<\/span> Maven options<\/a><\/li><li><a href=\"#Settingsxml\"><span class=\"toc_number toc_depth_1\">2<\/span> Settings.xml<\/a><\/li><li><a href=\"#Creating_an_archetype\"><span class=\"toc_number toc_depth_1\">3<\/span> Creating an archetype<\/a><\/li><li><a href=\"#POM_Parent\"><span class=\"toc_number toc_depth_1\">4<\/span> POM Parent<\/a><\/li><li><a href=\"#POM_Child\"><span class=\"toc_number toc_depth_1\">5<\/span> POM Child<\/a><ul><li><ul><li><a href=\"#Referencing_pom_parent\"><span class=\"toc_number toc_depth_3\">5.0.1<\/span> Referencing pom parent<\/a><\/li><li><a href=\"#Use_dependency_Management\"><span class=\"toc_number toc_depth_3\">5.0.2<\/span> Use dependency Management<\/a><\/li><li><a href=\"#Use_plugin_Management\"><span class=\"toc_number toc_depth_3\">5.0.3<\/span> Use plugin Management<\/a><\/li><\/ul><\/li><\/ul><\/li><li><a href=\"#Usefull_commands\"><span class=\"toc_number toc_depth_1\">6<\/span> Usefull commands<\/a><ul><li><a href=\"#Install_file_in_your_local_repository\"><span class=\"toc_number toc_depth_2\">6.1<\/span> Install file in your local repository<\/a><\/li><li><a href=\"#Install_file_in_your_remote_repository\"><span class=\"toc_number toc_depth_2\">6.2<\/span> Install file in your remote repository<\/a><\/li><li><a href=\"#Build_project\"><span class=\"toc_number toc_depth_2\">6.3<\/span> Build project<\/a><\/li><li><a href=\"#Generate_a_site\"><span class=\"toc_number toc_depth_2\">6.4<\/span> Generate a site<\/a><\/li><li><a href=\"#Use_multi_threads\"><span class=\"toc_number toc_depth_2\">6.5<\/span> Use multi threads<\/a><\/li><li><a href=\"#Non_recursive\"><span class=\"toc_number toc_depth_2\">6.6<\/span> Non recursive<\/a><\/li><\/ul><\/li><li><a href=\"#Usefull_configuration\"><span class=\"toc_number toc_depth_1\">7<\/span> Usefull configuration<\/a><ul><li><a href=\"#Timestamp\"><span class=\"toc_number toc_depth_2\">7.1<\/span> Timestamp<\/a><\/li><\/ul><\/li><li><a href=\"#Read_more\"><span class=\"toc_number toc_depth_1\">8<\/span> Read more<\/a><\/li><\/ul><\/div>\n<h1><span id=\"Maven_options\">Maven options<\/span><\/h1>\n<p>Before starting, let&#8217;s define maven options:<\/p>\n<pre lang=\"bash\">\r\n  export MAVEN_OPTS=\"-Xmx1024m -Xms1024m\"\r\n<\/pre>\n<h1><span id=\"Settingsxml\">Settings.xml<\/span><\/h1>\n<p>To use an external repository, you have to do the followings:<\/p>\n<p>* Define the profiles for the libraries and the plugins:<\/p>\n<pre lang=\"xml\">\r\n  <profile>\r\n\t<id>myProfileID<\/id>\r\n\t<activation>\r\n\t\t<activeByDefault>true<\/activeByDefault>\r\n\t<\/activation>\r\n\r\n\t<repositories>\r\n\t\t<repository>\r\n\t\t\t<id>myRepo1<\/id>\r\n\t\t\t<name>my 1st repository<\/name>\r\n\t\t\t<url>http:\/\/host\/my1strepository\/<\/url>\r\n\t\t\t<releases>\r\n\t\t\t\t<enabled>true<\/enabled>\r\n\t\t\t<\/releases>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false<\/enabled>\r\n\t\t\t<\/snapshots>\r\n\t\t<\/repository>\r\n\t\t<repository>\r\n\t\t\t<id>myRepo2<\/id>\r\n\t\t\t<name>my 2nd repository<\/name>\r\n\t\t\t<url>http:\/\/host\/my2ndrepository\/<\/url>\r\n\t\t\t<releases>\r\n\t\t\t\t<enabled>true<\/enabled>\r\n\t\t\t<\/releases>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false<\/enabled>\r\n\t\t\t<\/snapshots>\r\n\t\t<\/repository>\r\n\t<\/repositories>\r\n\t<pluginRepositories>\r\n\t\t<pluginRepository>\r\n\t\t\t<id>myRepo1<\/id>\r\n\t\t\t<name>my 1st repository<\/name>\r\n\t\t\t<url>http:\/\/host\/my1strepository\/<\/url>\r\n\t\t\t<releases>\r\n\t\t\t\t<enabled>true<\/enabled>\r\n\t\t\t<\/releases>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false<\/enabled>\r\n\t\t\t<\/snapshots>\r\n\t\t<\/pluginRepository>\r\n\t\t<pluginRepository>\r\n\t\t\t<id>myRepo2<\/id>\r\n\t\t\t<name>my 2nd repository<\/name>\r\n\t\t\t<url>http:\/\/host\/my2ndrepository\/<\/url>\r\n\t\t\t<releases>\r\n\t\t\t\t<enabled>true<\/enabled>\r\n\t\t\t<\/releases>\r\n\t\t\t<snapshots>\r\n\t\t\t\t<enabled>false<\/enabled>\r\n\t\t\t<\/snapshots>\r\n\t\t<\/pluginRepository>\r\n\t<\/pluginRepositories>\r\n<\/profile>\r\n<\/pre>\n<p>* Define the proxy authentification informations<\/p>\n<pre lang=\"xml\">\r\n<proxies>\r\n   \r\n   (...)\r\n\r\n   <proxy>\r\n      <id>myRepo1<\/id>\r\n      <active>true<\/active>\r\n      <protocol>http<\/protocol>\r\n      <username><\/username>\r\n      <password><\/password>\r\n      <host>host<\/host>\r\n      <port>port<\/port>\r\n      <nonProxyHosts><\/nonProxyHosts>\r\n   <\/proxy>\r\n\r\n   <proxy>\r\n      <id>myRepo2<\/id>\r\n      <active>true<\/active>\r\n      <protocol>http<\/protocol>\r\n      <username><\/username>\r\n      <password><\/password>\r\n      <host>host<\/host>\r\n      <port>port<\/port>\r\n      <nonProxyHosts><\/nonProxyHosts>\r\n   <\/proxy>\r\n\r\n   (...)\r\n\r\n<\/proxies>\r\n<\/pre>\n<p>* Define the administration informations:<\/p>\n<pre lang=\"xml\">\r\n<servers>\r\n\r\n   (...)\r\n\r\n   <server>\r\n      <id>myRepo1<\/id>\r\n      <username><\/username>\r\n      <password><\/password>\r\n  <\/server>\r\n\r\n  <server>\r\n      <id>myRepo1<\/id>\r\n      <username><\/username>\r\n      <password><\/password>\r\n  <\/server>\r\n\r\n   (...)\r\n<\/servers>\r\n<\/pre>\n<h1><span id=\"Creating_an_archetype\">Creating an archetype<\/span><\/h1>\n<pre lang=\"bash\">\r\nmvn archetype:create -DgroupId=<myGroupId> -DartifactId=<myArtefaktID>  -Dversion=<myInitialVersion> -Dpackaging=<myPackaging>\r\n -DarchetypeArtifactId=maven-archetype-webapp\r\n<\/pre>\n<p>* myGroupId: for example, com.company<br \/>\n* myArtefaktID : for example, myProjectName<br \/>\n* myPackaging: pom, jar, war<\/p>\n<p>Example:<\/p>\n<pre lang=\"bash\">\r\nmvn archetype:create -DgroupId=org.mycompany -DartifactId=parent -Dversion=1.0.0-SNAPSHOT -Dpackaging=pom\r\n -DarchetypeArtifactId=maven-archetype-webapp\r\n<\/pre>\n<h1><span id=\"POM_Parent\">POM Parent<\/span><\/h1>\n<p>Reference all your common dependencies\/plugins in the parent pom. In this way, it would be easier to manage them.<\/p>\n<p>The pom parent file (copy all in your &#8216;pom.xml&#8217; file): <\/p>\n<pre lang=\"xml\">\r\n\r\n<project xmlns=\"http:\/\/maven.apache.org\/POM\/4.0.0\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n\txsi:schemaLocation=\"http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/maven-v4_0_0.xsd\">\r\n\t<modelVersion>4.0.0<\/modelVersion>\r\n\t<groupId>org.mycompany<\/groupId>\r\n\t<artifactId>parent<\/artifactId>\r\n\t<packaging>pom<\/packaging>\r\n\t<version>1.0.0-SNAPSHOT<\/version>\r\n\t<name>parent<\/name>\r\n\t<url>http:\/\/maven.apache.org<\/url>\r\n\r\n\t<!-- Encoding sources in utf-8 -->\r\n\t<properties>\r\n\t\t<project.build.sourceEncoding>UTF-8<\/project.build.sourceEncoding>\r\n\t<\/properties>\r\n\r\n\t<build>\r\n\t\t<!-- Plugin Management -->\r\n\t\t<pluginManagement>\r\n\t\t\t<plugins>\r\n\t\t\t\t<!-- Maven compiler -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<artifactId>maven-compiler-plugin<\/artifactId>\r\n\t\t\t\t\t<configuration>\r\n\t\t\t\t\t\t<source>1.5<\/source>\r\n\t\t\t\t\t\t<target>1.5<\/target>\r\n\t\t\t\t\t<\/configuration>\r\n\t\t\t\t<\/plugin>\r\n\r\n\t\t\t\t<!-- war plugin -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t\t<artifactId>maven-war-plugin<\/artifactId>\r\n\t\t\t\t\t<version>2.1<\/version>\r\n\t\t\t\t\t<configuration>\r\n\t\t\t\t\t\t<archive>\r\n\t\t\t\t\t\t\t<manifestEntries>\r\n\t\t\t\t\t\t\t\t<ProductName>${project.name}<\/ProductName>\r\n\t\t\t\t\t\t\t\t<FileDescription>${project.description}<\/FileDescription>\r\n\t\t\t\t\t\t\t\t<InternalName>${project.name}<\/InternalName>\r\n\t\t\t\t\t\t\t\t<ProductVersion>${project.version}.${buildNumber}<\/ProductVersion>\r\n\t\t\t\t\t\t\t\t<CompanyName>${project.companyname}<\/CompanyName>\r\n\t\t\t\t\t\t\t\t<LegalCopyright>Copyright (c) mycompany<\/LegalCopyright>\r\n\t\t\t\t\t\t\t<\/manifestEntries>\r\n\t\t\t\t\t\t<\/archive>\r\n\t\t\t\t\t<\/configuration>\r\n\t\t\t\t<\/plugin>\r\n\r\n\t\t\t\t<!-- jar plugin -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t\t<artifactId>maven-jar-plugin<\/artifactId>\r\n\t\t\t\t\t<version>2.1<\/version>\r\n\t\t\t\t\t<configuration>\r\n\t\t\t\t\t\t<archive>\r\n\t\t\t\t\t\t\t<manifestEntries>\r\n\t\t\t\t\t\t\t\t<ProductName>${project.name}<\/ProductName>\r\n\t\t\t\t\t\t\t\t<FileDescription>${project.description}<\/FileDescription>\r\n\t\t\t\t\t\t\t\t<InternalName>${project.name}<\/InternalName>\r\n\t\t\t\t\t\t\t\t<ProductVersion>${project.version}.${buildNumber}<\/ProductVersion>\r\n\t\t\t\t\t\t\t\t<CompanyName>${project.companyname}<\/CompanyName>\r\n\t\t\t\t\t\t\t\t<LegalCopyright>Copyright (c)<\/LegalCopyright>\r\n\t\t\t\t\t\t\t<\/manifestEntries>\r\n\t\t\t\t\t\t\t<manifest>\r\n\t\t\t\t\t\t\t\t<addClasspath>true<\/addClasspath>\r\n\t\t\t\t\t\t\t\t<mainClass>org.mycompany.App<\/mainClass>\r\n\t\t\t\t\t\t\t\t<classpathPrefix>lib\/<\/classpathPrefix>\r\n\t\t\t\t\t\t\t<\/manifest>\r\n\t\t\t\t\t\t<\/archive>\r\n\t\t\t\t\t<\/configuration>\r\n\t\t\t\t<\/plugin>\r\n\r\n\r\n\t\t\t\t<!-- eclipse plugin -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<artifactId>maven-eclipse-plugin<\/artifactId>\r\n\t\t\t\t\t<version>2.4<\/version>\r\n\t\t\t\t\t<configuration>\r\n\t\t\t\t\t\t<additionalProjectnatures>\r\n\t\t\t\t\t\t\t<projectnature>org.springframework.ide.eclipse.core.springnature<\/projectnature>\r\n\t\t\t\t\t\t<\/additionalProjectnatures>\r\n\t\t\t\t\t\t<additionalBuildcommands>\r\n\t\t\t\t\t\t\t<buildcommand>org.springframework.ide.eclipse.core.springbuilder<\/buildcommand>\r\n\t\t\t\t\t\t<\/additionalBuildcommands>\r\n\t\t\t\t\t\t<downloadSources>true<\/downloadSources>\r\n\t\t\t\t\t\t<downloadJavadocs>true<\/downloadJavadocs>\r\n\t\t\t\t\t\t<wtpversion>1.5<\/wtpversion>\r\n\t\t\t\t\t<\/configuration>\r\n\t\t\t\t<\/plugin>\r\n\r\n\t\t\t\t<!-- release plugin -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<artifactId>maven-release-plugin<\/artifactId>\r\n\t\t\t\t\t<version>2.1<\/version>\r\n\t\t\t\t<\/plugin>\r\n\r\n\t\t\t\t<!-- buildnumber plugin -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<groupId>org.codehaus.mojo<\/groupId>\r\n\t\t\t\t\t<artifactId>buildnumber-maven-plugin<\/artifactId>\r\n\t\t\t\t\t<version>1.0-beta-4<\/version>\r\n\t\t\t\t\t<executions>\r\n\t\t\t\t\t\t<execution>\r\n\t\t\t\t\t\t\t<phase>validate<\/phase>\r\n\t\t\t\t\t\t\t<goals>\r\n\t\t\t\t\t\t\t\t<goal>create<\/goal>\r\n\t\t\t\t\t\t\t<\/goals>\r\n\t\t\t\t\t\t<\/execution>\r\n\t\t\t\t\t<\/executions>\r\n\t\t\t\t\t<configuration>\r\n\t\t\t\t\t\t<doCheck>false<\/doCheck>\r\n\t\t\t\t\t\t<doUpdate>false<\/doUpdate>\r\n\t\t\t\t\t\t<providerImplementations>\r\n\t\t\t\t\t\t\t<svn>javasvn<\/svn>\r\n\t\t\t\t\t\t<\/providerImplementations>\r\n\t\t\t\t\t<\/configuration>\r\n\t\t\t\t<\/plugin>\r\n\r\n\r\n\t\t\t\t<!-- To copy dependencies: use 'mvn dependency:copy-dependencies' -->\r\n\t\t\t\t<plugin>\r\n\t\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t\t<artifactId>maven-dependency-plugin<\/artifactId>\r\n\t\t\t\t\t<executions>\r\n\t\t\t\t\t\t<execution>\r\n\t\t\t\t\t\t\t<id>copy-dependencies<\/id>\r\n\t\t\t\t\t\t\t<phase>package<\/phase>\r\n\t\t\t\t\t\t\t<goals>\r\n\t\t\t\t\t\t\t\t<goal>copy-dependencies<\/goal>\r\n\t\t\t\t\t\t\t<\/goals>\r\n\t\t\t\t\t\t\t<configuration>\r\n\t\t\t\t\t\t\t\t<outputDirectory>${project.build.directory}\/lib<\/outputDirectory>\r\n\t\t\t\t\t\t\t\t<overWriteReleases>false<\/overWriteReleases>\r\n\t\t\t\t\t\t\t\t<overWriteSnapshots>false<\/overWriteSnapshots>\r\n\t\t\t\t\t\t\t\t<overWriteIfNewer>true<\/overWriteIfNewer>\r\n\t\t\t\t\t\t\t<\/configuration>\r\n\t\t\t\t\t\t<\/execution>\r\n\t\t\t\t\t<\/executions>\r\n\t\t\t\t<\/plugin>\r\n\t\t\t<\/plugins>\r\n\t\t<\/pluginManagement>\r\n\t<\/build>\r\n\r\n\t<!-- Dependency Management -->\r\n\t<dependencyManagement>\r\n\t\t<dependencies>\r\n\t\t\t<!-- Log4j -->\r\n\t\t\t<dependency>\r\n\t\t\t\t<groupId>log4j<\/groupId>\r\n\t\t\t\t<artifactId>log4j<\/artifactId>\r\n\t\t\t\t<version>1.2.14<\/version>\r\n\t\t\t\t<optional>false<\/optional>\r\n\t\t\t<\/dependency>\r\n\t\t\t<!-- To parse XML -->\r\n\t\t\t<dependency>\r\n\t\t\t\t<groupId>jdom<\/groupId>\r\n\t\t\t\t<artifactId>jdom<\/artifactId>\r\n\t\t\t\t<version>1.1<\/version>\r\n\t\t\t\t<optional>false<\/optional>\r\n\t\t\t<\/dependency>\r\n\t\t<\/dependencies>\r\n\t<\/dependencyManagement>\r\n\r\n\t<dependencies>\r\n\t\t<dependency>\r\n\t\t\t<groupId>junit<\/groupId>\r\n\t\t\t<artifactId>junit<\/artifactId>\r\n\t\t\t<version>3.8.1<\/version>\r\n\t\t\t<scope>test<\/scope>\r\n\t\t<\/dependency>\r\n\t<\/dependencies>\r\n\r\n\t<!-- Reporting, use 'mvn site' -->\r\n\t<reporting>\r\n\t\t<plugins>\r\n\t\t\t<!-- Javadoc -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t<artifactId>maven-javadoc-plugin<\/artifactId>\r\n\t\t\t\t<version>2.7<\/version>\r\n\t\t\t\t<configuration>\r\n\t\t\t\t\t<minmemory>128m<\/minmemory>\r\n\t\t\t\t\t<maxmemory>512m<\/maxmemory>\r\n\t\t\t\t<\/configuration>\r\n\t\t\t<\/plugin>\r\n\t\t\t<!-- Quality code with checkstyle -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t<artifactId>maven-checkstyle-plugin<\/artifactId>\r\n\t\t\t\t<version>2.5<\/version>\r\n\t\t\t<\/plugin>\r\n\t\t\t<!-- Quality code with pmd -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t<artifactId>maven-pmd-plugin<\/artifactId>\r\n\t\t\t\t<version>2.5<\/version>\r\n\t\t\t\t<configuration>\r\n\t\t\t\t\t<linkXref>true<\/linkXref>\r\n\t\t\t\t\t<sourceEncoding>utf-8<\/sourceEncoding>\r\n\t\t\t\t\t<minimumTokens>100<\/minimumTokens>\r\n\t\t\t\t\t<targetJdk>1.5<\/targetJdk>\r\n\t\t\t\t<\/configuration>\r\n\t\t\t<\/plugin>\r\n\t\t\t<!-- Metrics -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.codehaus.mojo<\/groupId>\r\n\t\t\t\t<artifactId>jdepend-maven-plugin<\/artifactId>\r\n\t\t\t\t<version>2.0-beta-2<\/version>\r\n\t\t\t<\/plugin>\r\n\t\t\t<!-- Identify which parts of your Java program are lacking test coverage -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.codehaus.mojo<\/groupId>\r\n\t\t\t\t<artifactId>cobertura-maven-plugin<\/artifactId>\r\n\t\t\t\t<version>2.4<\/version>\r\n\t\t\t<\/plugin>\r\n\t\t\t<!-- Tags -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.codehaus.mojo<\/groupId>\r\n\t\t\t\t<artifactId>taglist-maven-plugin<\/artifactId>\r\n\t\t\t\t<version>2.4<\/version>\r\n\t\t\t<\/plugin>\r\n\t\t\t<!-- Generate Surfire report -->\r\n\t\t\t<plugin>\r\n\t\t\t\t<groupId>org.apache.maven.plugins<\/groupId>\r\n\t\t\t\t<artifactId>maven-surefire-report-plugin<\/artifactId>\r\n\t\t\t\t<version>2.5<\/version>\r\n\t\t\t<\/plugin>\r\n\t\t<\/plugins>\r\n\t<\/reporting>\r\n  \r\n<\/project>\r\n\r\n<\/pre>\n<h1><span id=\"POM_Child\">POM Child<\/span><\/h1>\n<h3><span id=\"Referencing_pom_parent\">Referencing pom parent<\/span><\/h3>\n<pre lang=\"xml\">\r\n\r\n<project>\r\n\r\n(...)   \r\n\r\n  <parent>\r\n    <groupId>org.mycompany<\/groupId>\r\n    <artifactId>parent<\/artifactId>\r\n    <version>1.0.0-SNAPSHOT<\/version>\r\n  <\/parent>\r\n\r\n(...)  \r\n\r\n<\/project>\r\n\r\n<\/pre>\n<h3><span id=\"Use_dependency_Management\">Use dependency Management<\/span><\/h3>\n<pre lang=\"xml\">\r\n<project>\r\n\r\n(...)   \r\n\r\n  <dependencies>  \r\n    ...\r\n    \r\n    <dependency>\r\n        <dependency>\r\n          <groupId>groupId<\/groupId>\r\n          <artifactId>artifactId<\/artifactId>          \r\n        <\/dependency>\r\n    <\/dependency>\r\n    ...\r\n  <\/dependencies>\r\n\r\n(...)  \r\n\r\n<\/project>\r\n<\/pre>\n<h3><span id=\"Use_plugin_Management\">Use plugin Management<\/span><\/h3>\n<pre lang=\"xml\">\r\n<project>\r\n  (...)\r\n  <build>\r\n    ...\r\n    <plugins>\r\n      <plugin>\r\n        <groupId>groupId<\/groupId>\r\n        <artifactId>artifactId<\/artifactId>\r\n      <\/plugin>\r\n    <\/plugins>\r\n    ...\r\n  <\/build>\r\n  (...)\r\n<\/project>\r\n<\/pre>\n<h1><span id=\"Usefull_commands\">Usefull commands<\/span><\/h1>\n<h2><span id=\"Install_file_in_your_local_repository\">Install file in your local repository<\/span><\/h2>\n<pre lang=\"bash\">\r\n  mvn install:install-file -DgroupId=mygroupId -DartifactId=myartifactId -Dversion=myversion -Dpackaging=mypackaging -Dfile=myfile -DgeneratePom=true \r\n<\/pre>\n<p>** packaging: pom, war, jar<br \/>\n** file: the pom\/jar\/war you want to install in you local repository<br \/>\n** generatePom: possibility to specify a pom.xml file with the argument &#8216;-f&#8217;<\/p>\n<h2><span id=\"Install_file_in_your_remote_repository\">Install file in your remote repository<\/span><\/h2>\n<pre lang=\"bash\">\r\n  mvn deploy:deploy-file -DgroupId=mygroupId -DartifactId=myartifactId -Dversion=myversion -Dpackaging=mypackaging -Dfile=myfile -DgeneratePom=true -Durl=myremoterepository -DrepositoryId=myrepositoryId\r\n<\/pre>\n<p>** packaging: pom, war, jar<br \/>\n** file: the pom\/jar\/war you want to install in you local repository<br \/>\n** generatePom: possibility to specify a pom.xml file with the argument &#8216;-f&#8217;<\/p>\n<h2><span id=\"Build_project\">Build project<\/span><\/h2>\n<pre lang=\"bash\">\r\n  mvn clean install\r\n<\/pre>\n<h2><span id=\"Generate_a_site\">Generate a site<\/span><\/h2>\n<pre lang=\"bash\">\r\n  mvn site\r\n<\/pre>\n<h2><span id=\"Use_multi_threads\">Use multi threads<\/span><\/h2>\n<pre lang=\"bash\">\r\n  # add option -T x; x is number of threads\r\n  mvn clean package -T 2\r\n<\/pre>\n<h2><span id=\"Non_recursive\">Non recursive<\/span><\/h2>\n<p>For example, if you only want to build multi-module parent, you can juste do :<\/p>\n<pre lang=\"bash\">\r\nmvn -N clean install\r\n<\/pre>\n<h1><span id=\"Usefull_configuration\">Usefull configuration<\/span><\/h1>\n<h2><span id=\"Timestamp\">Timestamp<\/span><\/h2>\n<pre lang=\"xml\">\r\n\r\n<project>\r\n  (...)\r\n  <properties>\r\n    <maven.build.timestamp.format>yyyyMMdd-HHmm<\/maven.build.timestamp.format>\r\n  <\/properties>\r\n  (...)\r\n<\/project>\r\n\r\n<\/pre>\n<p>Now you can use anywere the timestamp in your pom.xml like this:<\/p>\n<pre lang=\"bash\">\r\n${maven.build.timestamp}\r\n<\/pre>\n<h1><span id=\"Read_more\">Read more<\/span><\/h1>\n<ul>\n<li>In the maven documentation: <a href=\"http:\/\/maven.apache.org\/guides\/\" target=\"_blank\">here<\/a><\/li>\n<li><a href=\"http:\/\/books.sonatype.com\/mvnref-book\/reference\/resource-filtering-sect-properties.html\">http:\/\/books.sonatype.com\/mvnref-book\/reference\/resource-filtering-sect-properties.html<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Contents1 Maven options2 Settings.xml3 Creating an archetype4 POM Parent5 POM Child5.0.1 Referencing pom parent5.0.2 Use dependency Management5.0.3 Use plugin Management6 Usefull commands6.1 Install file in your local repository6.2 Install file in your remote repository6.3 Build project6.4 Generate a site6.5 Use multi threads6.6 Non recursive7 Usefull configuration7.1 Timestamp8 Read more Maven options Before starting, let&#8217;s define [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":884,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-888","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=888"}],"version-history":[{"count":12,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/888\/revisions"}],"predecessor-version":[{"id":1908,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/888\/revisions\/1908"}],"up":[{"embeddable":true,"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=\/wp\/v2\/pages\/884"}],"wp:attachment":[{"href":"https:\/\/blog.rabahi.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}