<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Maven Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/category/maven/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/category/maven/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Mon, 19 Jun 2023 13:29:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>Top 50 Maven Interview Questions with Answers</title>
		<link>https://www.scmgalaxy.com/tutorials/top-50-maven-interview-questions-with-answers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/top-50-maven-interview-questions-with-answers/#respond</comments>
		
		<dc:creator><![CDATA[Ashwani Kumar]]></dc:creator>
		<pubDate>Wed, 03 May 2023 05:19:33 +0000</pubDate>
				<category><![CDATA[Maven]]></category>
		<guid isPermaLink="false">https://www.scmgalaxy.com/tutorials/?p=10343</guid>

					<description><![CDATA[<p>1. What is Maven? A. A build automation toolB. A framework for web applicationsC. A version control systemD. A programming [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-50-maven-interview-questions-with-answers/">Top 50 Maven Interview Questions with Answers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2023/05/image-71.png" alt="" class="wp-image-10344" width="543" height="361" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2023/05/image-71.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2023/05/image-71-300x200.png 300w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2023/05/image-71-392x260.png 392w" sizes="(max-width: 543px) 100vw, 543px" /><figcaption class="wp-element-caption"><strong><em>Maven Interview Questions with Answers</em></strong></figcaption></figure>
</div>


<h3 class="wp-block-heading">1. What is Maven?</h3>



<p class="wp-block-paragraph">A. A build automation tool<br>B. A framework for web applications<br>C. A version control system<br>D. A programming language</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">2. What is the latest version of Maven?</h3>



<p class="wp-block-paragraph">A. 1.0<br>B. 2.0<br>C. 3.0<br>D. 4.0</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">3. What is a POM in Maven?</h3>



<p class="wp-block-paragraph">A. Plugin Object Model<br>B. Project Object Model<br>C. Parent Object Model<br>D. Peer Object Model</p>



<h4 class="wp-block-heading">Answer: B</h4>



<h3 class="wp-block-heading">4. What is the default lifecycle of Maven?</h3>



<p class="wp-block-paragraph">A. build<br>B. compile<br>C. deploy<br>D. install</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">5. Can you customize the Maven lifecycle?</h3>



<p class="wp-block-paragraph">A. Yes<br>B. No</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">6. What is a Maven repository?</h3>



<p class="wp-block-paragraph">A. A place where Maven stores its binaries and dependencies<br>B. A folder on your local machine where Maven stores its artifacts<br>C. A place where Maven stores its configuration files<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">7. What are the phases of the Maven build lifecycle?</h3>



<p class="wp-block-paragraph">A. initialize, compile, package, deploy<br>B. validate, compile, package, deploy<br>C. compile, package, install, deploy<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: B</h4>



<h3 class="wp-block-heading">8. What is Maven Central?</h3>



<p class="wp-block-paragraph">A. The default repository for Maven<br>B. A repository for commercial Maven artifacts<br>C. A repository for test artifacts<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">9. How do you specify a specific version of a dependency in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;dependency&#8221; tag in the POM file<br>B. Use the &#8220;version&#8221; attribute in the &#8220;dependency&#8221; tag.<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">10. What is the local repository in Maven?</h3>



<p class="wp-block-paragraph">A. A folder on your local machine where Maven stores its artifacts<br>B. The repository where Maven stores its binaries and dependencies<br>C. A remote repository where Maven deploys its artifacts<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">11. What is a Maven plugin?</h3>



<p class="wp-block-paragraph">A. A tool that allows you to customize the Maven build process<br>B. A tool that allows you to deploy Maven artifacts remotely<br>C. A tool that allows you to test Maven artifacts<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">12. How do you execute a Maven plugin?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;exec&#8221; command<br>B. Use the &#8220;run&#8221; command<br>C. Use the &#8220;mvn&#8221; command with the plugin goal<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">13. How do you create a Maven project?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn create-project&#8221; command<br>B. Use the Maven Project Wizard in IDEs like Eclipse<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">14. How do you add a dependency in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;dependency&#8221; tag in the POM file<br>B. Use the &#8220;dependency&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">15. What is a Maven archetype?</h3>



<p class="wp-block-paragraph">A. A tool that allows you to generate Maven projects from templates<br>B. A tool that allows you to deploy Maven artifacts<br>C. A tool that allows you to test Maven artifacts<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">16. How do you create a Maven archetype?</h3>



<p class="wp-block-paragraph">A. Use the Maven Archetype Plugin<br>B. Use the Maven Archetype Wizard in IDEs like Eclipse<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">17. What is a Maven parent project?</h3>



<p class="wp-block-paragraph">A. A project that is used as a parent for other projects<br>B. A project that is used as a child for other projects<br>C. A project that is used as a dependency in other projects<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">18. How do you define a parent project in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;parent&#8221; tag in the POM file<br>B. Use the &#8220;dependency&#8221; tag in the POM file<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">19. What is the difference between a Maven SNAPSHOT and a release version?</h3>



<p class="wp-block-paragraph">A. A SNAPSHOT version is a development version while a release version is a stable version<br>B. A SNAPSHOT version is a stable version while a release version is a development version<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">20. How do you deploy a Maven artifact to a remote repository?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn deploy&#8221; command<br>B. Use the &#8220;mvn release&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">21. What is a Maven goal?</h3>



<p class="wp-block-paragraph">A. A stage in the build lifecycle<br>B. A task that a plugin performs<br>C. A command that you run in the terminal<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: B</h4>



<h3 class="wp-block-heading">22. How do you specify a plugin goal in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn plugin:&#8221; command<br>B. Use the &#8220;mvn goal:&#8221; command<br>C. Use the &#8220;plugin&#8221; tag in the POM file<br>D. Use the &#8220;goal&#8221; tag in the POM file</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">23. What is a Maven profile?</h3>



<p class="wp-block-paragraph">A. A way to specify different build settings for different environments<br>B. A way to specify different dependencies for different environments<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">24. How do you activate a Maven profile?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn activate&#8221; command<br>B. Use the &#8220;mvn profile&#8221; command<br>C. Specify the profile name in the &#8220;activeProfile&#8221; tag in the POM file<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">25. What is a Maven assembly?</h3>



<p class="wp-block-paragraph">A. A way to package your Maven project<br>B. A way to bundle your Maven project with its dependencies<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">26. How do you create a Maven assembly?</h3>



<p class="wp-block-paragraph">A. Use the Assembly Plugin<br>B. Use the Assembly Wizard in IDEs like Eclipse<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">27. What is a Maven plugin repository?</h3>



<p class="wp-block-paragraph">A. A repository for Maven plugins<br>B. A folder on your local machine where Maven stores its plugins<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">28. How do you specify a plugin repository in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;repository&#8221; tag in the POM file<br>B. Use the &#8220;plugins&#8221; tag in the POM file<br>C. Use the &#8220;pluginRepositories&#8221; tag in the POM file<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">29. What is the purpose of the Maven reactor?</h3>



<p class="wp-block-paragraph">A. To build a set of related projects together<br>B. To run unit tests for a set of related projects<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">30. How do you specify a specific phase in the Maven build lifecycle?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;phase&#8221; attribute in the &#8220;plugin&#8221; tag<br>B. Use the &#8220;phase&#8221; attribute in the &#8220;execution&#8221; tag<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: B</h4>



<h3 class="wp-block-heading">31. What is the difference between a Maven repository and a remote repository?</h3>



<p class="wp-block-paragraph">A. A Maven repository is a local repository while a remote repository is a repository on the internet<br>B. A Maven repository is a repository on the internet while a remote repository is a local repository<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">32. How do you exclude a transitive dependency in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;exclude&#8221; tag in the &#8220;dependency&#8221; tag<br>B. Use the &#8220;exclude&#8221; tag in the &#8220;dependencyManagement&#8221; tag<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">33. What is the purpose of the Maven dependency tree?</h3>



<p class="wp-block-paragraph">A. To show the dependencies of a Maven project<br>B. To show the build lifecycle of a Maven project<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">34. How do you generate a dependency tree in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn dependency:tree&#8221; command<br>B. Use the &#8220;mvn build:tree&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">35. What is a Maven plugin execution?</h3>



<p class="wp-block-paragraph">A. A way to configure a plugin<br>B. A way to execute a plugin<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">36. How do you specify an execution for a plugin in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;executions&#8221; tag in the POM file<br>B. Use the &#8220;goals&#8221; tag in the POM file<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">37. What is a Maven plugin dependency?</h3>



<p class="wp-block-paragraph">A. A way to specify a dependency for a plugin<br>B. A way to specify a plugin as a dependency<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">38. How do you specify a plugin dependency in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;dependency&#8221; tag in the POM file<br>B. Use the &#8220;plugin&#8221; tag in the POM file<br>C. Use the &#8220;pluginDependencies&#8221; tag in the POM file<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">39. What is the purpose of the Maven site plugin?</h3>



<p class="wp-block-paragraph">A. To generate a website for your Maven project<br>B. To deploy your Maven project to a remote server<br>C. To configure your Maven project<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">40. How do you generate a site for your Maven project?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn site&#8221; command<br>B. Use the &#8220;mvn deploy&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">41. What is the purpose of the Maven snapshot repository?</h3>



<p class="wp-block-paragraph">A. To store Maven snapshots<br>B. To store Maven releases<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">42. How do you specify a snapshot repository in Maven?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;repository&#8221; tag in the POM file<br>B. Use the &#8220;snapshots&#8221; tag in the POM file<br>C. Use the &#8220;snapshotRepository&#8221; tag in the POM file<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">43. What is the purpose of the Maven release plugin?</h3>



<p class="wp-block-paragraph">A. To deploy your Maven project to a remote server<br>B. To release your Maven project<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: B</h4>



<h3 class="wp-block-heading">44. How do you release a Maven project?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn release&#8221; command<br>B. Use the &#8220;mvn deploy&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">45. What is the purpose of the Maven SCM plugin?</h3>



<p class="wp-block-paragraph">A. To configure your Maven project&#8217;s source control<br>B. To configure your Maven project&#8217;s build settings<br>C. To configure your Maven project&#8217;s dependencies<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">46. How do you configure source control for your Maven project?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;scm&#8221; tag in the POM file<br>B. Use the &#8220;sourceControl&#8221; tag in the POM file<br>C. Use the &#8220;repository&#8221; tag in the POM file<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">47. What is the purpose of the Maven dependency plugin?</h3>



<p class="wp-block-paragraph">A. To manage your Maven project&#8217;s dependencies<br>B. To deploy your Maven project&#8217;s dependencies<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>



<h3 class="wp-block-heading">48. How do you manage your Maven project&#8217;s dependencies using the Maven dependency plugin?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn dependency:resolve&#8221; command<br>B. Use the &#8220;mvn dependency:tree&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: C</h4>



<h3 class="wp-block-heading">49. What is the purpose of the Maven release plugin?</h3>



<p class="wp-block-paragraph">A. To deploy your Maven project to a remote server<br>B. To release your Maven project<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: B</h4>



<h3 class="wp-block-heading">50. How do you release a Maven project?</h3>



<p class="wp-block-paragraph">A. Use the &#8220;mvn release&#8221; command<br>B. Use the &#8220;mvn deploy&#8221; command<br>C. Both A and B<br>D. None of the above</p>



<h4 class="wp-block-heading">Answer: A</h4>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-50-maven-interview-questions-with-answers/">Top 50 Maven Interview Questions with Answers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/top-50-maven-interview-questions-with-answers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Writing a Custom Plugin for Maven</title>
		<link>https://www.scmgalaxy.com/tutorials/writing-a-custom-plugin-for-maven/</link>
					<comments>https://www.scmgalaxy.com/tutorials/writing-a-custom-plugin-for-maven/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 12:03:04 +0000</pubDate>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Custom Plugin for Maven]]></category>
		<category><![CDATA[How to create custom Maven plugins]]></category>
		<category><![CDATA[Maven Custom Plugin]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Write custom Maven plugins]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4545</guid>

					<description><![CDATA[<p>Introduction In this article, we will learn about Maven which is a project management framework that provides a configurable approach for managing software projects. [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/writing-a-custom-plugin-for-maven/">Writing a Custom Plugin for Maven</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Introduction</h2>
<p>In this article, we will learn about <strong><em>Maven</em></strong> which is a <strong><em>project management framework</em></strong> that provides a configurable approach for managing software projects. Maven covers all the necessary phases that happen right from project creation, building, documentation, reporting, installation and deployment. This article begins with the basics of Maven along with the concepts like Project Object Model (aka POM), the various life-cycles in Maven etc. Then it continues with using Maven for creating a project till installation of the project in a local repository. The latter part of the article provides details about creating custom Maven plugins that can be executed in stand-alone mode as well as part of some Maven life-cycle.</p>
<h2>Maven Custom Plug-In (Example Code)</h2>
<ul>
<li><a href="http://www.javabeat.net/articles/sourcecode/2010/072010-maven-custom-plugin.zip">Download Sample Program for Maven Custom Plug-In</a></li>
</ul>
<h2 id="MavenConcepts">Maven Concepts</h2>
<p>In this section, we will see the basics of Maven concepts like <strong><em>Project Object Model</em></strong>, the <strong><em>standard lifecycles</em></strong> available in Maven as well as the <strong><em>dependency scope</em></strong> that comes up while dealing with dependency with projects.</p>
<h3>Project Object Model</h3>
<p>Project information, its dependencies and the artifacts that can be built are described in <strong><em>POM</em></strong> which is essentially a configuration file in XML. POM basically contains instructions on what needs to be done during the various life-cycles that happen during a build. Note that the POM is not coupled to java projects, in fact the project can be written in any language like C, C# etc. For example, consider the sample minimal POM,</p>
<p>&nbsp;</p>
<pre><code>&lt;project&gt;

    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;name&gt;adder&lt;/name&gt;
    &lt;url&gt;http://www.javabeat.net/adder&lt;/url&gt;
    &lt;groupId&gt;net.javabeat.adder&lt;/groupId&gt;
    &lt;artifactId&gt;adder&lt;/artifactId&gt;
    &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;junit&lt;/groupId&gt;
            &lt;artifactId&gt;junit&lt;/artifactId&gt;
            &lt;version&gt;3.8.1&lt;/version&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;

&lt;/project&gt;</code></pre>
<p>Have a look at the above POM. It defines the information about the project and its dependant projects. We will look into more details about the various POM elements.</p>
<p>&nbsp;</p>
<ul>
<li>modelVersion – This defines the version of the POM.</li>
<li>name – The name of the project.</li>
<li>groupId – This identifies the group (or the organization) that created the project. This property usually takes the domain address which represents the group or the organization so that uniqueness is maintained across the groups.</li>
<li>artifactId – This identifies the artifact (output component) name that comes from a project. Artifacts can be anything like a JAR, WAR, EAR etc</li>
<li>version – This property identifies the version of the artifact. Usually the version takes the format as &#8220;majorVersion.minorVersion-qualifier&#8221;. For example, &#8220;1.1-alpha&#8221;, &#8220;1.2-beta&#8221;, &#8220;1.3-SNAPSHOT&#8221;. packaging – Represents the type of artifact, for example – jar, war, ear etc.</li>
</ul>
<p>In the next section in the POM, we have included the dependencies of the project. Note that this section is optional. If there are no dependencies for a project (which is unlikely the case), this can be omitted. However, in this example case, we have declared a dependency to junit and it is expected that the project will contain some test resources. It is always a good idea to define the version of the artifact while defining a dependency, so that during runtime, we are not facing any issues because of version match. We have mentioned the scope as test, more details about this element will follow in the forthcoming section.</p>
<h3>Dependency Scope</h3>
<p>A project can depend on a number of dependent projects and Maven provides a way for defining the dependencies among projects through configuration. One can control the level of dependency through scope and the default being &#8216;compile&#8217;. The following scopes are available.</p>
<p>&nbsp;</p>
<ul>
<li>Compile &#8211; This being the default scope will be available at the classpath during the compilation as well as during runtime.</li>
<li>Runtime &#8211; The presence of this scope ensures that the dependency will be available at the runtime and not during the compile-time. For example, one may use the Servlet API during the compilation phase, however the Servlet implementation (from Sun, Oracle, IBM etc) will be required during the runtime only.</li>
<li>Test &#8211; This scope ensures that the dependency is available during the compilation of the test resources as well as during the execution of the test resources.</li>
<li>Provided &#8211; This dependency is mostly used while developing J2EE applications where the dependency is available as part of the J2EE container (or any Container) and it is not necessary for the project to package the dependency as part of the artifact. For example, while developing Enterprise bean applications, as part of the project, we will be using EJB jar for compilation; however, we never package this jar as part of the project because the EJB container will provide this jar.</li>
</ul>
<h3>Build Life-cycle</h3>
<p>A <strong><em>life-cycle</em></strong> defines the execution for achieving a set of goals. Each life-cycle defines a sequence of phases for achieving the goals. The</p>
<h2>Maven Custom Plug-In (Example Code)</h2>
<ul>
<li><a href="http://www.javabeat.net/articles/sourcecode/2010/072010-maven-custom-plugin.zip">Download Sample Program for Maven Custom Plug-In</a></li>
</ul>
<h2 id="UsingMaven">Using Maven</h2>
<p>In this section, we will see how to use maven for creating, compiling, building, packaging and installing a project. Download the latest version of Maven from <a href="http://maven.apache.org/download.html">here</a>. Installation of maven will be as simple as un-zipping the downloaded file into a desired directory. In this example, we will be seeing the usage of various maven plugins and goals that contributes to the entire project life-cycle. Before proceeding with the sample, create an environment variable MAVEN_HOME that points to the Maven installation directory and ensure that the PATH variable contains %MAVEN_HOME/bin.</p>
<h3>Creating a project</h3>
<p>Execute the following command which is used to create the initial project structure.</p>
<p>&nbsp;</p>
<pre><code>mvn archetype:create -DgroupId=net.javabeat.emailservice -DartifactId=emailservice</code></pre>
<p>Note that in <code>archetype:create</code>, <code>archetype</code> represents the <strong><em>plugin prefix</em></strong> and <code>create</code> represents the <strong><em>goal</em></strong>. This <strong><em>goal</em></strong>creates a project with the name <code>emailservice</code>. As soon as this command is executed, one can see a directory called <code>emailservice</code> which has the <code>src</code> folder for holding the main java files, along with java files representing test-cases. The POM file with the name pom.file will also be created with the structure as follows,</p>
<p><strong>pom.xml</strong></p>
<pre><code>&lt;project&gt;
    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;

    &lt;groupId&gt;net.javabeat.emailservice&lt;/groupId&gt;
    &lt;artifactId&gt;emailservice&lt;/artifactId&gt;
    &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
    &lt;packaging&gt;jar&lt;/packaging&gt;

    &lt;name&gt;emailservice&lt;/name&gt;
    &lt;url&gt;http://maven.apache.org&lt;/url&gt;

    &lt;dependencies&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;junit&lt;/groupId&gt;
            &lt;artifactId&gt;junit&lt;/artifactId&gt;
            &lt;version&gt;3.8.1&lt;/version&gt;
            &lt;scope&gt;test&lt;/scope&gt;
        &lt;/dependency&gt;
    &lt;/dependencies&gt;

&lt;/project&gt;</code></pre>
<h3>Importing the project in Eclipse</h3>
<p>This step is optional for those who are not working with Eclipse being the IDE for developing the project. Change the current directory to <code>emailservice</code> and issue the following command. This goal <code>eclipse</code> creates the project metadata files that are complaint with Eclipse. As soon as the following goal is executed there will be two files generated in the current directory which are <code>.project</code> and <code>.classpath</code>. This is for Eclipse to understand so that the newly created project can be imported in Eclipse IDE to work with.</p>
<p>&nbsp;</p>
<pre><code>mvn eclipse:eclipse</code></pre>
<p>Now, for importing the project into Eclipse, Open Eclipse, go to File -&gt; Import -&gt; Existing Projects into Workspace and navigate to the directory containing the <code>.project</code> and <code>.classpath</code> files and Click OK. Now this project gets imported into Eclipse workspace.</p>
<h3>Adding files to project</h3>
<p>To make the project meaningful, we will add the following files into the main source folder.</p>
<p><strong>EMail.java</strong></p>
<pre><code>package net.javabeat.emailservice;

public class EMail {

    private String fromAddress;
    private String toAddress;
    private String subject;
    private String message;
    private String status;

    public String getFromAddress() {
        return fromAddress;
    }

    public void setFromAddress(String fromAddress) {
        this.fromAddress = fromAddress;
    }

    public String getToAddress() {
        return toAddress;
    }

    public void setToAddress(String toAddress) {
        this.toAddress = toAddress;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }		
}</code></pre>
<p>The above class represents the <code>Email</code> model object that will be used by <code>EmailService</code> class for sending email. Given below is the code listing for EMailService class.</p>
<p><strong>EMailService.java</strong></p>
<pre><code>package net.javabeat.emailservice;

public class EMailService {

    public EMail sendEmail(String fromAddress, String toAddress, String subject, String message){

        EMail emailObject = new EMail();
        emailObject.setFromAddress(fromAddress);
        emailObject.setToAddress(toAddress);
        emailObject.setSubject(subject);
        emailObject.setMessage(message);
        emailObject.setStatus("SUCCESS");

        System.out.println("Sending email from " + fromAddress + " to " + toAddress + "with subject "
		    + subject + " having the message contents " + message);
        return emailObject;
    }

</code></pre>
<p>In this section we will see how to write <strong><em>custom maven plugins</em></strong>. It is possible that the custom maven can be made to run outside the <strong><em>standard life-cycle phase</em></strong> or it can be made to be executed as part of the standard life-cycle phase. We will see how to accomplish both of these items in the following sections.</p>
<h3>Creating standalone plugins</h3>
<p>In this section, we will write a custom plugin and will see how to write it in stand-alone mode – i.e running the plugin directly without establishing any dependencies on any of the standard life-cycles available in Maven.</p>
<h4>Creating the project</h4>
<p>The first step is to create the project containing the custom maven plugin. This project is quite different from the regular java project because it is not a regular java artifact like JAR, WAR etc. Instead it is going to be a maven plugin. Issue the following command to create the <strong><em>maven plugin project</em></strong>.</p>
<p>&nbsp;</p>
<p><code>mvn archetype:create -DgroupId=net.javabeat.maven -DartifactId=environment-info -DarchetypeArtifactId=maven-archetype-mojo</code></p>
<p>The above command creates a project with the name environment-info with the standard directory layout containing the source and test resources. If you look into the POM file, the package type will be <code>maven-plugin</code> to indicate that this is a maven plugin project.</p>
<h4>Importing the project into Eclipse</h4>
<p>This step is optional and this is for someone who wishes to work with the project in Eclipse IDE. Issuing the following with the current directory being <code>environment-info</code> creates the Eclipse <code>.project</code> and <code>.classpath</code> files. Now, open Eclipse and go to File -&gt; Import -&gt; Existing Project into Workspace and specify the directory to &lt;&lt;path to environment-info&gt;&gt; directory.</p>
<p>&nbsp;</p>
<p><code>mvn eclipse:eclipse</code></p>
<h4>Creating the plugin</h4>
<p>In Maven, the plugin that achieves a specific task is called by the name <strong><em>MOJO</em></strong> (Maven Old Java Object similar to POJO). A <strong><em>MOJO</em></strong> defines the goal which is nothing but the custom action which is executed upon user&#8217;s request. In this example, we will see a custom MOJO that will define the goal of storing all the environmental properties in a text file upon execution. Have a look at the following code,</p>
<p><strong>EnvironmentInfoTask.java</strong></p>
<p><code>package net.javabeat.maven;  import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.util.Iterator; import java.util.Map;  import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException;  /**  * @goal env-info  */ public class EnvironmentInfoTask extends AbstractMojo{      /**      * @parameter       *     default-value="log.txt"      *     expression="${environment.filename}"      */     private String fileName; 	     /**      * @parameter       *     default-value="C:\\temp"      *     expression="${environment.base_dir}"      */     private File baseDirectory; 	     /**      * @parameter       *     default-value="true"      *     expression="${environment.loggingRequired}"     */	     private boolean loggingRequired; 	     public void execute() throws MojoExecutionException, MojoFailureException { 		         StringBuilder fileContents = new StringBuilder(); 		         if (baseDirectory.exists()){			             baseDirectory.mkdirs();             log("Created base directory '" + baseDirectory.getAbsolutePath() + "'");			         } 		         Map&lt;String, String&gt; environment = System.getenv();         Iterator&lt;Map.Entry&lt;String, String&gt;&gt; entries = environment.entrySet().iterator(); 		         fileContents.append("Environment Information:" + newLine());         fileContents.append("-----------------------------------------------------------" + newLine()); 		 		         while (entries.hasNext()){ 			             Map.Entry&lt;String, String&gt; entry = entries.next();             fileContents.append(entry.getKey() + "-------------&gt;" + entry.getValue() + newLine());         } 		         fileContents.append("-----------------------------------------------------------" + newLine());         writeToFile(fileContents);         log("File contents written");	     }      private void log(String message){ 		         if (loggingRequired){             System.out.println(message);         }     } 	     private static String newLine(){         return System.getProperty("line.separator");     } 	     private void writeToFile(StringBuilder fileContents){          FileWriter fWriter = null;         BufferedWriter bWriter = null;          try{			             fWriter = new FileWriter(baseDirectory + File.separator + fileName);             bWriter = new BufferedWriter(fWriter);             bWriter.write(fileContents.toString());			         }catch (Exception e){             log("Error in writing the contents to file -&gt;" + e.getMessage());         }finally{			             try{                 if (bWriter != null){                     bWriter.close();				                 }                 if (fWriter != null){                     fWriter.close();				                 }				             }catch (Exception e){                 log("Error in closing the resources -&gt;" + e.getMessage());             }         }     } }</code></p>
<p>The first thing to notice is the class <code>EnvironmentInfoTask</code> which is going to persist the environmental information into a file extends <code>AbstractMojo</code> class which in turn extends the <code>Mojo</code> interface. Note that the goal for this MOJO is annotated using <strong><em>XDoclet</em></strong> using <code>goal</code> attribute with the name <code>env-info</code>. The method that will be called during execution of the MOJO is <code>execute()</code>. This method does the job of persisting the environmental properties by taking information from the various properties .</p>
<p>&nbsp;</p>
<ul>
<li>Base Directory – the directory under which the log file name will be created which is of type &#8216;java.io.File&#8217;. Note that we have used XDoclet &#8216;parameter&#8217; for annotating this property. This property has the default value &#8216;C:\\temp&#8217; which means the this is the default location for the log file. However, this value can be overridden at runtime by specifying the property &#8216;environment.base_dir&#8217; which is an expression and its value will be resolved at runtime</li>
<li>Filename – the name of the log file into which the environmental properties will be written. Note that the default value for the log file name is &#8216;log.txt&#8217;. However, during runtime, the value can be overridden through the property &#8216;environment.filename&#8217;</li>
<li>Logging Required – whether logging information on what this MOJO is doing has to be shown. The default value being true can be overridden by specifying the value false to the property &#8216;environment.loggingRequired&#8217;.</li>
</ul>
<h4>Compiling the project</h4>
<p>Issue the following command for compiling the maven plugin project.</p>
<p>&nbsp;</p>
<p><code>mvn compile</code></p>
<h4>Packaging the project</h4>
<p>The following command is used to package the plugin project.</p>
<p>&nbsp;</p>
<p><code>mvn package</code></p>
<h4>Installing the project</h4>
<p>For installing the project into the local Maven repository, issue the following command.</p>
<p>&nbsp;</p>
<p><code>mvn install</code></p>
<p>Usually, on Windows, the local repository is <code>%USER_HOME%/.m2/repository</code>. On Windows XP, <code>USER_HOME</code> will expand to <code>"C:\\Document and  Settings\\&lt;&lt;UserName&gt;&gt;"</code>, however in Windows Vista it is <code>"C:\\Users\\&lt;&lt;UserName&gt;&gt;"</code>.</p>
<h4>Running the project</h4>
<p>There are several ways to run the maven plugin. We will see them one by one. Generally running a Maven plugin takes the following form,</p>
<p>&nbsp;</p>
<p><code>mvn groupId:artifactId:version:goalName</code></p>
<p>In our case, the group id is <code>net.javabeat.maven</code>, artifact id is <code>environment-info</code>, version is <code>1.0-SNAPSHOT</code> and goal name is <code>env-info</code>. So running the following command will run the custom plugin</p>
<p>&nbsp;</p>
<p><code>mvn net.javabeat.maven:environment-info:1.0-SNAPSHOT:env-info</code></p>
<p>Running the above command will create a directory <code>C:\\temp</code> (if not present) and create a file name with <code>log.txt</code> with the environment information. Because logging is enabled by default, the text &#8216;Created base directory <code>C:\temp</code>&#8216; and &#8216;File contents are written&#8217; will be displayed in the console.</p>
<p>It is also possible to configure the plugin by passing alternate input values. Have a look at the following command. This command specifies an alternate base directory <code>C:\\temp-new</code> for the log file <code>newLog.txt</code> with logging turned off. Note that for passing a property to a plugin the standard way is <code>–DpropertyName=propertyValue</code>.</p>
<p>&nbsp;</p>
<p><code>mvn net.javabeat.maven:environment-info:1.0-SNAPSHOT:env-info -Denvironment.base_dir=C:\temp-new -Denvironment.filename=newLog.txt -Denvironment.loggingRequired=false</code></p>
<p>It is also possible to omit the version information while running the plugin in which case, Maven tries to find the recent version for the plugin by comparing the version strings. In our case, this wouldn&#8217;t happen, because we have only one version which is <code>1.0-SNAPSHOT</code>. So the following command will also work.</p>
<p>&nbsp;</p>
<p><code>mvn net.javabeat.maven:environment-info:env-info</code></p>
<p>Another approach to run the plugin is by omitting the group id and just specifying the artifact id along with the goal name. However, for this to happen, we have to add the group id to the default list of groups that Maven will look for. Open the file <code>%MAVEN_HOME%/conf/settings.xml</code> and add the following line under the element <code>pluginsGroup</code>.</p>
<p>&nbsp;</p>
<p><code>&lt;pluginGroup&gt;net.javabeat.maven&lt;/pluginGroup&gt;</code></p>
<p>This ensures that we have added the group <code>net.javabeat.maven</code> to the list of default groups that Maven will search for, because of which the following command will work.</p>
<p>&nbsp;</p>
<p><code>mvn environment-info:env-info</code></p>
<h3>Attaching plugins to existing life-cycle</h3>
<p>So far, we have seen how to run a custom plugin in stand-alone mode. This is not of much-use and Maven provides a way for binding the goals of any custom plugin into existing build cycle. For example, let us consider that we have written a custom plugin which will simply print the current date and we want this plugin to be executed during the <code>compilation</code> phase and the <code>installation</code> phase of a project. We will see how to accomplish this goal in this section.</p>
<p>The following listing shows the custom plugin which will simply emit the date information.</p>
<p><strong>DateInfo.java</strong></p>
<p><code>package net.javabeat.maven;  import java.util.Date;  import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException;  /**  * @goal date-info  */ public class DateInfo extends AbstractMojo {      public void execute() throws MojoExecutionException, MojoFailureException { 		         Date currentDate = new Date();		         getLog().info("Current date is " + currentDate);     } }</code></p>
<p>Follow the same process of creating the project, then creating the plugin, compilation, packaging and installation as we have discussed before. We will see how to attach this custom plugin during the compile and the install phase. Open POM.xml file and add the following after the project dependencies element,</p>
<p>&nbsp;</p>
<p><code>&lt;build&gt;     &lt;plugins&gt;         &lt;plugin&gt;             &lt;groupId&gt;net.javabeat.maven&lt;/groupId&gt;             &lt;artifactId&gt;environment-info&lt;/artifactId&gt;             &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;              &lt;executions&gt;                 &lt;execution&gt;                     &lt;id&gt;date-info-compile&lt;/id&gt;                     &lt;phase&gt;compile&lt;/phase&gt;                     &lt;goals&gt;                         &lt;goal&gt;date-info&lt;/goal&gt;                     &lt;/goals&gt;                 &lt;/execution&gt;                  &lt;execution&gt;                     &lt;id&gt;date-info-install&lt;/id&gt;                     &lt;phase&gt;install&lt;/phase&gt;                     &lt;goals&gt;                         &lt;goal&gt;date-info&lt;/goal&gt;                     &lt;/goals&gt;                &lt;/execution&gt;              &lt;/executions&gt;          &lt;/plugin&gt;     &lt;/plugins&gt; &lt;/build&gt;</code></p>
<p>Though the above XML fragment is big, it is fairly simple. First thing is, it defines the execution element where we can define goals for executions. We have defined two execution elements one for the compile phase and the other for the install phase and we have given appropriate id for each execution element. Have a note at the goals section. We have included our custom goal <code>date-info</code> which will display the current date information. Note that where to search for the goal&#8217;s group id and the artifact id along with optional version is defined just above the executions element.</p>
<p>After this whenever we run <code>mvn compile</code> and <code>mvn  install</code> for any project that contains the above definition we will see that the goal <code>date-info</code> getting invoked during the phases.</p>
<h2>Conclusion</h2>
<p>In this article, we have seen how to use Maven for creating projects and to manage dependencies between projects. We have seen Maven simplifying the task of creating, compiling, packaging, installing projects thereby reducing the pain from developers and build managers. Also discussed in the article are the extension capabilities provided by Maven for pluging-in custom plugins in the form of MOJOs.</p>
<pre><code>}</code></pre>
<p>Note that there is no real functionality in the above, all it does is to accept the various user inputs and constructs an email object before returning it.</p>
<h3>Compiling the project</h3>
<p>The next step is to compile to project, by default the compilation process will create a folder called <code>target</code> and it will place the java class files along with any resource files, if present.</p>
<p>&nbsp;</p>
<pre><code>mvn compile</code></pre>
<p>Note that the location of the target folder as well as the location of the target folder is also configurable.</p>
<h3>Packaging the project</h3>
<p>This step will package the project with the packaging type mentioned in POM, which is JAR. Before packaging it will also execute the test cases (if specified) in the test folder and the packaged jar will be placed in the target folder.</p>
<p>&nbsp;</p>
<pre><code>mvn package</code></pre>
<h3>Installing the project</h3>
<p>The final step is to install the jar in a local repository so that other projects, if they are dependant on this project can make references to this project. The following command will install (i.e copy the jar) to the local repository.</p>
<p>&nbsp;</p>
<pre><code>mvn install</code></pre>
<p>Note that, by default, the local repository path will be <code>%USER_HOME%/.m2/repository</code>.</p>
<h2>Maven Custom Plug-In (Example Code)</h2>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/writing-a-custom-plugin-for-maven/">Writing a Custom Plugin for Maven</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/writing-a-custom-plugin-for-maven/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Recommended Books for Maven &#124; Good books for Maven learning</title>
		<link>https://www.scmgalaxy.com/tutorials/recommended-books-for-maven/</link>
					<comments>https://www.scmgalaxy.com/tutorials/recommended-books-for-maven/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 11 Feb 2014 05:42:05 +0000</pubDate>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Best Maven Books]]></category>
		<category><![CDATA[Bood books to learn maven]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Good books for Maven]]></category>
		<category><![CDATA[Learn Maven]]></category>
		<category><![CDATA[Maven Books]]></category>
		<category><![CDATA[Maven books reference]]></category>
		<category><![CDATA[Maven Guide]]></category>
		<category><![CDATA[Maven learning resources]]></category>
		<category><![CDATA[Maven tutorials]]></category>
		<category><![CDATA[Recommended]]></category>
		<category><![CDATA[Recommended books for Maven]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Top Maven Books]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2014/02/11/recommended-books-for-maven/</guid>

					<description><![CDATA[<p>Recommended Books for Maven http://www.maestrodev.com/wp-content/uploads/2012/03/betterbuildswithmaven-2008.pdf</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/recommended-books-for-maven/">Recommended Books for Maven | Good books for Maven learning</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignnone size-full wp-image-3733 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2014/02/maven-books-references-1.png" alt="maven-books-references" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2014/02/maven-books-references-1.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2014/02/maven-books-references-1-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><strong>Recommended Books for Maven<br />
</strong><br />
<!-- [if gte mso 9]><xml>  <o:OfficeDocumentSettings>   <o:AllowPNG/>  </o:OfficeDocumentSettings> </xml><![endif]--></p>
<p class="MsoPlainText"><a href="http://www.maestrodev.com/wp-content/uploads/2012/03/betterbuildswithmaven-2008.pdf">http://www.maestrodev.com/wp-content/uploads/2012/03/betterbuildswithmaven-2008.pdf</a></p>
<p><!-- [if gte mso 9]><xml>  <w:WordDocument>   <w:View>Normal</w:View>   <w:Zoom>0</w:Zoom>   <w:TrackMoves/>   <w:TrackFormatting/>   <w:PunctuationKerning/>   <w:ValidateAgainstSchemas/>   <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>   <w:IgnoreMixedContent>false</w:IgnoreMixedContent>   <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>   <w:DoNotPromoteQF/>   <w:LidThemeOther>EN-US</w:LidThemeOther>   <w:LidThemeAsian>X-NONE</w:LidThemeAsian>   <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>   <w:Compatibility>    <w:BreakWrappedTables/>    <w:SnapToGridInCell/>    <w:WrapTextWithPunct/>    <w:UseAsianBreakRules/>    <w:DontGrowAutofit/>    <w:SplitPgBreakAndParaMark/>    <w:EnableOpenTypeKerning/>    <w:DontFlipMirrorIndents/>    <w:OverrideTableStyleHps/>   </w:Compatibility>   <w:DoNotOptimizeForBrowser/>   <m:mathPr>    <m:mathFont m:val="Cambria Math"/>    <m:brkBin m:val="before"/>    <m:brkBinSub m:val="&#45;-"/>    <m:smallFrac m:val="off"/>    <m:dispDef/>    <m:lMargin m:val="0"/>    <m:rMargin m:val="0"/>    <m:defJc m:val="centerGroup"/>    <m:wrapIndent m:val="1440"/>    <m:intLim m:val="subSup"/>    <m:naryLim m:val="undOvr"/>   </m:mathPr></w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml>  <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267">   <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal"/>   <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>   <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>   <w:LsdException Locked="false" Priority="39" Name="toc 1"/>   <w:LsdException Locked="false" Priority="39" Name="toc 2"/>   <w:LsdException Locked="false" Priority="39" Name="toc 3"/>   <w:LsdException Locked="false" Priority="39" Name="toc 4"/>   <w:LsdException Locked="false" Priority="39" Name="toc 5"/>   <w:LsdException Locked="false" Priority="39" Name="toc 6"/>   <w:LsdException Locked="false" Priority="39" Name="toc 7"/>   <w:LsdException Locked="false" Priority="39" Name="toc 8"/>   <w:LsdException Locked="false" Priority="39" Name="toc 9"/>   <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>   <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title"/>   <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>   <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>   <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong"/>   <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>   <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>   <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>   <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>   <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>   <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote"/>   <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>   <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6"/>   <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6"/>   <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6"/>   <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>   <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>   <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>   <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>   <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>   <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>   <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>   <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6"/>   <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>   <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6"/>   <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>   <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>   <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>   <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>   <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>   <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>   <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>   <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>  </w:LatentStyles> </xml><![endif]--><!-- [if gte mso 10]>



<style>  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} </style>

 <![endif]--></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/recommended-books-for-maven/">Recommended Books for Maven | Good books for Maven learning</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/recommended-books-for-maven/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Maven CLI Options Reference &#8211; Command Line &#124; Maven Command Line Cheatsheet</title>
		<link>https://www.scmgalaxy.com/tutorials/maven-cli-options-reference-command-line/</link>
					<comments>https://www.scmgalaxy.com/tutorials/maven-cli-options-reference-command-line/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 12 Sep 2013 10:06:42 +0000</pubDate>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[Command line]]></category>
		<category><![CDATA[Command line options]]></category>
		<category><![CDATA[Maven CLI]]></category>
		<category><![CDATA[Maven CLI Options]]></category>
		<category><![CDATA[Maven CLI Options Description]]></category>
		<category><![CDATA[Maven CLI Options Guide]]></category>
		<category><![CDATA[Maven CLI Options Instructions]]></category>
		<category><![CDATA[Maven CLI Options Reference]]></category>
		<category><![CDATA[Maven CLI Options Tutorial]]></category>
		<category><![CDATA[Maven CLI Reference]]></category>
		<category><![CDATA[Maven Command Line Cheatsheet]]></category>
		<category><![CDATA[Options]]></category>
		<category><![CDATA[Reference]]></category>
		<category><![CDATA[Understand Maven CLI Options]]></category>
		<category><![CDATA[Useful Maven CLI Options]]></category>
		<category><![CDATA[Useful Maven Commands]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2013/09/12/maven-cli-options-reference-command-line/</guid>

					<description><![CDATA[<p>Maven CLI Options Reference Options Description -am,--also-make If project list is specified, also build projects required by the list -amd,--also-make-dependents [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/maven-cli-options-reference-command-line/">Maven CLI Options Reference &#8211; Command Line | Maven Command Line Cheatsheet</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><img decoding="async" class="alignnone size-full wp-image-3739 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2013/09/maven-cli-options-reference.png" alt="maven-cli-options-reference" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2013/09/maven-cli-options-reference.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2013/09/maven-cli-options-reference-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></h2>
<h2>Maven CLI Options Reference<a name="Maven_CLI_Options_Reference"></a></h2>
<table class="zebra-striped" border="1">
<tbody>
<tr class="a">
<th><strong>Options</strong></th>
<th><strong>Description</strong></th>
</tr>
<tr class="b">
<td><code>-<a name="am"></a>am,--<a name="also-make"></a>also-make</code></td>
<td>If project list is specified, also build projects required by the list</td>
</tr>
<tr class="a">
<td><code>-<a name="amd"></a>amd,--<a name="also-make-dependents"></a>also-make-dependents</code></td>
<td>If project list is specified, also build projects that depend on projects on the list</td>
</tr>
<tr class="a">
<td>&#8211;<a name="B"></a>B,&#8211;<a name="batch-mode"></a>batch-mode</td>
<td>Run in non-interactive (batch) mode</td>
</tr>
<tr class="a">
<td><code>-<a name="C"></a>C,--<a name="strict-checksums"></a>strict-checksums</code></td>
<td>Fail the build if checksums don&#8217;t match</td>
</tr>
<tr class="b">
<td><code>-<a name="c"></a>c,--<a name="lax-checksums"></a>lax-checksums</code></td>
<td>Warn if checksums don&#8217;t match</td>
</tr>
<tr class="a">
<td><code>-<a name="cpu"></a>cpu,--<a name="check-plugin-updates"></a>check-plugin-updates</code></td>
<td>Ineffective, only kept for backward compatibility</td>
</tr>
<tr class="b">
<td><code>-<a name="D"></a>D,--<a name="define"></a>define &lt;arg&gt;</code></td>
<td>Define a system property</td>
</tr>
<tr class="a">
<td><code>-<a name="e"></a>e,--<a name="errors"></a>errors</code></td>
<td>Produce execution error messages</td>
</tr>
<tr class="b">
<td><code>-<a name="emp"></a>emp,--<a name="encrypt-master-password"></a>encrypt-master-password &lt;arg&gt;</code></td>
<td>Encrypt master security password</td>
</tr>
<tr class="a">
<td><code>-<a name="ep"></a>ep,--<a name="encrypt-password"></a>encrypt-password &lt;arg&gt;</code></td>
<td>Encrypt server password</td>
</tr>
<tr class="b">
<td><code>-<a name="f"></a>f,--<a name="file"></a>file &lt;arg&gt;</code></td>
<td>Force the use of an alternate POM file (or directory with pom.xml).</td>
</tr>
<tr class="a">
<td><code>-<a name="fae"></a>fae,--<a name="fail-at-end"></a>fail-at-end</code></td>
<td>Only fail the build afterwards; allow all non-impacted builds to continue</td>
</tr>
<tr class="b">
<td><code>-<a name="ff"></a>ff,--<a name="fail-fast"></a>fail-fast</code></td>
<td>Stop at first failure in reactorized builds</td>
</tr>
<tr class="a">
<td><code>-<a name="fn"></a>fn,--<a name="fail-never"></a>fail-never</code></td>
<td>NEVER fail the build, regardless of project result</td>
</tr>
<tr class="b">
<td><code>-<a name="gs"></a>gs,--<a name="global-settings"></a>global-settings &lt;arg&gt;</code></td>
<td>Alternate path for the global settings file</td>
</tr>
<tr class="a">
<td><code>-<a name="h"></a>h,--<a name="help"></a>help</code></td>
<td>Display help information</td>
</tr>
<tr class="b">
<td><code>-<a name="l"></a>l,--<a name="log-file"></a>log-file &lt;arg&gt;</code></td>
<td>Log file to where all build output will go.</td>
</tr>
<tr class="a">
<td><code>-<a name="llr"></a>llr,--<a name="legacy-local-repository"></a>legacy-local-repository</code></td>
<td>Use Maven 2 Legacy Local Repository behaviour, ie no use of _maven.repositories. Can also be activated by using -Dmaven.legacyLocalRepo=true</td>
</tr>
<tr class="b">
<td><code>-<a name="N"></a>N,--<a name="non-recursive"></a>non-recursive</code></td>
<td>Do not recurse into sub-projects</td>
</tr>
<tr class="a">
<td><code>-<a name="npr"></a>npr,--<a name="no-plugin-registry"></a>no-plugin-registry</code></td>
<td>Ineffective, only kept for backward compatibility</td>
</tr>
<tr class="b">
<td><code>-<a name="npu"></a>npu,--<a name="no-plugin-updates"></a>no-plugin-updates</code></td>
<td>Ineffective, only kept for backward compatibility</td>
</tr>
<tr class="a">
<td><code>-<a name="nsu"></a>nsu,--<a name="no-snapshot-updates"></a>no-snapshot-updates</code></td>
<td>Suppress SNAPSHOT updates</td>
</tr>
<tr class="b">
<td><code>-<a name="o"></a>o,--<a name="offline"></a>offline</code></td>
<td>Work offline</td>
</tr>
<tr class="a">
<td><code>-<a name="P"></a>P,--<a name="activate-profiles"></a>activate-profiles &lt;arg&gt;</code></td>
<td>Comma-delimited list of profiles to activate</td>
</tr>
<tr class="b">
<td><code>-<a name="pl"></a>pl,--<a name="projects"></a>projects &lt;arg&gt;</code></td>
<td>Comma-delimited list of specified reactor projects to build instead of all projects. A project can be specified by [groupId]:artifactId or by its relative path.</td>
</tr>
<tr class="a">
<td><code>-<a name="q"></a>q,--<a name="quiet"></a>quiet</code></td>
<td>Quiet output &#8211; only show errors</td>
</tr>
<tr class="b">
<td><code>-<a name="rf"></a>rf,--<a name="resume-from"></a>resume-from &lt;arg&gt;</code></td>
<td>Resume reactor from specified project</td>
</tr>
<tr class="a">
<td><code>-<a name="s"></a>s,--<a name="settings"></a>settings &lt;arg&gt;</code></td>
<td>Alternate path for the user settings file</td>
</tr>
<tr class="b">
<td><code>-<a name="T"></a>T,--<a name="threads"></a>threads &lt;arg&gt;</code></td>
<td>Thread count, for instance 2.0C where C is core multiplied</td>
</tr>
<tr class="a">
<td><code>-<a name="t"></a>t,--<a name="toolchains"></a>toolchains &lt;arg&gt;</code></td>
<td>Alternate path for the user toolchains file</td>
</tr>
<tr class="b">
<td><code>-<a name="U"></a>U,--<a name="update-snapshots"></a>update-snapshots</code></td>
<td>Forces a check for updated releases and snapshots on remote repositories</td>
</tr>
<tr class="a">
<td><code>-<a name="up"></a>up,--<a name="update-plugins"></a>update-plugins</code></td>
<td>Ineffective, only kept for backward compatibility</td>
</tr>
<tr class="b">
<td><code>-<a name="V"></a>V,--<a name="show-version"></a>show-version</code></td>
<td>Display version information WITHOUT stopping build</td>
</tr>
<tr class="a">
<td><code>-<a name="v"></a>v,--<a name="version"></a>version</code></td>
<td>Display version information</td>
</tr>
<tr class="b">
<td><code>-<a name="X"></a>X,--<a name="debug"></a>debug</code></td>
<td>Produce execution debug output</td>
</tr>
</tbody>
</table>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/maven-cli-options-reference-command-line/">Maven CLI Options Reference &#8211; Command Line | Maven Command Line Cheatsheet</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/maven-cli-options-reference-command-line/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Introduction of Maven &#8211; Complete Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/introduction-of-maven/</link>
					<comments>https://www.scmgalaxy.com/tutorials/introduction-of-maven/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 14 Apr 2010 10:58:53 +0000</pubDate>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[About Maven]]></category>
		<category><![CDATA[Apache Maven]]></category>
		<category><![CDATA[Benefits of Maven]]></category>
		<category><![CDATA[Build automation tool]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Maven Features]]></category>
		<category><![CDATA[Maven Guide]]></category>
		<category><![CDATA[Maven Installation Process]]></category>
		<category><![CDATA[Maven Introduction]]></category>
		<category><![CDATA[Maven Overview]]></category>
		<category><![CDATA[Project management]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[What is Maven]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/04/14/introduction-of-maven/</guid>

					<description><![CDATA[<p>Contents What is Maven? Philosophy of Maven Benefits of Maven High Level Features and Benefits of Maven Download Maven Installation [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/introduction-of-maven/">Introduction of Maven &#8211; Complete Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4262" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/maven-introduction.png" alt="maven-introduction" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/maven-introduction.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/04/maven-introduction-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>Contents<br />
<a href="#_Toc244331200">What is Maven?</a><br />
<a href="#_Toc244331201">Philosophy of Maven</a><br />
<a href="#_Toc244331202">Benefits of Maven</a><br />
<a href="#_Toc244331203">High Level Features and Benefits of Maven</a><br />
<a href="#_Toc244331204">Download Maven</a><br />
<a href="#_Toc244331205">Installation Instructions</a><br />
<a href="#_Toc244331206">Windows 2000/XP</a><br />
<a href="#_Toc244331207">Unix-based Operating Systems (Linux, Solaris and Mac OS X)</a><br />
<a href="#_Toc244331208">Optional configuration</a><br />
<a href="#_Toc244331209">Settings</a><br />
<a href="#_Toc244331210">Settings Reference</a><br />
<a href="#_Toc244331211">First Maven project?</a></p>
<h1><a class="mceItemAnchor" name="_Toc244331200"></a>What is Maven?</h1>
<p>Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project&#8217;s build, reporting and documentation from a central piece of information.<br />
At first glance Maven can appear to be many things, but in a nutshell Maven is an attempt to apply patterns to a project&#8217;s build infrastructure in order to promote comprehension and productivity by providing a clear path in the use of best practices. Maven is essentially a project management and comprehension tool and as such provides a way to help with managing:</p>
<ul>
<li>Builds</li>
<li>Documentation</li>
<li>Reporting</li>
<li>Dependencies</li>
<li>SCMs</li>
<li>Releases</li>
<li>Distribution</li>
</ul>
<h1><a class="mceItemAnchor" name="_Toc244331201"></a>Philosophy of Maven</h1>
<p>Maven is generally considered by many to be a build tool. Many people who come to Maven initially are familiar with Ant so it&#8217;s a natural association but Maven is not just a build tool, and not just a replacement for Ant. Maven is an entirely different creature from Ant. Ant is simply a toolbox whereas Maven is about the application of patterns in order to achieve an infrastructure which displays the characteristics of visibility, reusability, maintainability, and comprehensibility.<br />
Maven was borne of the very practical desire to make several projects at Apache work in the same way. So that developers could freely move between these projects, knowing clearly how they all worked by understanding how one of them worked. If a developer spent time understanding how one project built it was intended that they would not have to go through this process again when they moved on to the next project. The same idea extends to testing, generating documentation, generating metrics and reports, testing and deploying.</p>
<h1><a class="mceItemAnchor" name="_Toc244331202"></a>Benefits of Maven</h1>
<ul>
<li>Standardized project layout and project structure generator.</li>
<li>Standardized dependency-management mechanism.</li>
<li>Multiple project support.</li>
<li>Instant downloads of new plugins and features as the developer needs them.</li>
<li>Website generation for up-to-date project information.</li>
<li>Integration with source control: CVS and Subversion.</li>
<li>Reusability</li>
<li>scalability (lower level of additional info/code to add a new step to the build process)</li>
<li>Build lifecycle management</li>
<li>Large existing repository</li>
<li>Eclipse aware</li>
<li>Well documented (hopefully soon)</li>
<li>One directory layout,</li>
<li>A single way to define dependencies,</li>
<li>Setting up a project is really fast,</li>
<li>99% of my needs are available out of the box,</li>
<li>build best practices enforcement (shared build meme)</li>
<li>automated build of application, from source code to pre-production platform =&gt; fast time to market with reduced risks</li>
<li>Works well with distributed teams <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Location doesn&#8217;t matter.</li>
<li>All artifacts are versioned and store in a repository</li>
<li>Build process is standardized for all projects</li>
<li>A lot of goals are available so it isn&#8217;t necessary to develop some specific build process part contrary to ANT we can reuse existing ANT tasks in build process with ant run plug-in</li>
<li>it provide quality project information with generated site</li>
<li>Easy to learn and use</li>
<li>Makes the build process much easier at the project level (i.e. don&#8217;t have to create very much for each project for Maven to build it correctly, and those things you do create are more declarative than functional)</li>
<li>Automatic project web sites with consistent information about each project</li>
<li>Recommended standards and best practices for project layout and definition</li>
<li>Promotes modular design of code. by making it simple to manage mulitple projects it allows the design to be laid out into multiple logical parts, weaving these parts together through the use of dependency tracking in pom files.</li>
<li>Enforces modular design of code</li>
<li>Quick project setup, no complicated build.xml files, just a POM and go</li>
</ul>
<p>&nbsp;</p>
<h1><a class="mceItemAnchor" name="_Toc244331203"></a>High Level Features and Benefits of Maven</h1>
<ul>
<li>Encourages best practices</li>
<li>Provides a uniform build system and consistent usage across all projects</li>
<li>Provides dependency management including automatic updating, dependency closures (also known as transitive dependencies)</li>
<li>Provides reuse of build logic</li>
<li>Defines project standard directory layout</li>
<li>Helps to reduce the duplication of dependent software libraries (jars) required to build an application</li>
<li>Stores all the software libraries or artifacts in a remote stores called a Maven repositories</li>
</ul>
<h1><a class="mceItemAnchor" name="_Toc244331204"></a>Download Maven</h1>
<p>Maven is distributed in several formats for your convenience. Maven 2.2.1 is distributed under the Apache License, version 2.0.<br />
Download link: <a href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a></p>
<h1><a class="mceItemAnchor" name="_Toc244331205"></a>Installation Instructions</h1>
<p><u>System Requirements</u><br />
<b>JDK</b> 1.5 or above (this is to execute Maven &#8211; it still allows you to build against 1.3 and prior JDK&#8217;s)<br />
<b>Memory</b> No minimum requirement<br />
<b>Disk </b>No minimum requirement. Approximately 100MB will be used for your local repository, however this will vary depending on usage and can be removed and redownloaded at any time.<br />
<b>Operating System </b>No minimum requirement. On Windows, Windows NT and above or Cygwin is required for the startup scripts. Tested on Windows XP, Fedora Core and Mac OS X.<br />
<b>Maven </b>is a Java tool, so you must have Java installed in order to proceed. More precisely, you need a Java Development Kit (JDK), the Java Runtime Environment (JRE) is not sufficient.<br />
Additional optional installation steps are listed after the platform specific instructions.</p>
<h2><a class="mceItemAnchor" name="_Toc244331206"></a>Windows 2000/XP</h2>
<ul>
<li>Unzip the distribution archive, i.e. apache-maven-2.2.1-bin.zip to the directory you wish to install Maven 2.2.1. These instructions assume you chose C:\Program Files\Apache Software Foundation. The subdirectory apache-maven-2.2.1 will be created from the archive.</li>
<li>Add the M2_HOME environment variable by opening up the system properties (WinKey + Pause), selecting the &#8220;Advanced&#8221; tab, and the &#8220;Environment Variables&#8221; button, then adding the M2_HOME variable in the user variables with the value C:\Program Files\Apache Software Foundation\apache-maven-2.2.1. Be sure to omit any quotation marks around the path even if it contains spaces. Note: For Maven &lt; 2.0.9, also be sure that the M2_HOME doesn&#8217;t have a &#8216;\&#8217; as last character.</li>
<li>In the same dialog, add the M2 environment variable in the user variables with the value %M2_HOME%\bin.</li>
<li>Optional: In the same dialog, add the MAVEN_OPTS environment variable in the user variables to specify JVM properties, e.g. the value -Xms256m -Xmx512m. This environment variable can be used to supply extra options to Maven.</li>
<li>In the same dialog, update/create the Path environment variable in the user variables and prepend the value %M2% to add Maven available in the command line.</li>
<li>In the same dialog, make sure that JAVA_HOME exists in your user variables or in the system variables and it is set to the location of your JDK, e.g. C:\Program Files\Java\jdk1.5.0_02 and that %JAVA_HOME%\bin is in your Path environment variable.</li>
<li>Open a new command prompt (Winkey + R then type cmd) and run mvn &#8211;version to verify that it is correctly installed.</li>
</ul>
<h2><a class="mceItemAnchor" name="_Toc244331207"></a>Unix-based Operating Systems (Linux, Solaris and Mac OS X)</h2>
<ul>
<li>Extract the distribution archive, i.e. apache-maven-2.2.1-bin.tar.gz to the directory you wish to install Maven 2.2.1. These instructions assume you chose /usr/local/apache-maven. The subdirectory apache-maven-2.2.1 will be created from the archive.</li>
<li>In a command terminal, add the M2_HOME environment variable, e.g. export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1.</li>
<li>Add the M2 environment variable, e.g. export M2=$M2_HOME/bin.</li>
<li>Optional: Add the MAVEN_OPTS environment variable to specify JVM properties, e.g. export MAVEN_OPTS=&#8221;-Xms256m -Xmx512m&#8221;. This environment variable can be used to supply extra options to Maven.</li>
<li>Add M2 environment variable to your path, e.g. export PATH=$M2:$PATH.</li>
<li>Make sure that JAVA_HOME is set to the location of your JDK, e.g. export JAVA_HOME=/usr/java/jdk1.5.0_02 and that $JAVA_HOME/bin is in your PATH environment variable.</li>
<li>Run mvn &#8211;version to verify that it is correctly installed.</li>
</ul>
<p>&nbsp;</p>
<h2><a class="mceItemAnchor" name="_Toc244331208"></a>Optional configuration</h2>
<p>Maven will work for most tasks with the above configuration, however if you have any environmental specific configuration outside of individual projects then you will need to configure settings. The following sections refer to what is available.</p>
<h2><a class="mceItemAnchor" name="_Toc244331209"></a>Settings</h2>
<p>Maven has settings file located in the Maven installation and/or user home directory that configure environmental specifics such as:</p>
<ul>
<li>HTTP proxy server</li>
<li>repository manager location</li>
<li>server authentication and passwords</li>
<li>other configuration properties</li>
</ul>
<h1><a class="mceItemAnchor" name="_Toc244331210"></a>Settings Reference</h1>
<p>The settings element in the settings.xml file contains elements used to define values which configure Maven execution in various ways, like the pom.xml, but should not be bundled to any specific project, or distributed to an audience. These include values such as the local repository location, alternate remote repository servers, and authentication information. There are two locations where a settings.xml file may live:</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li>The Maven install: $M2_HOME/conf/settings.xml</li>
<li>A user&#8217;s install: ${user.home}/.m2/settings.xml</li>
</ul>
</li>
</ul>
<p><b>Here is an overview of the top elements under settings:</b></p>
<p>xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;<br />
xsi:schemaLocation=&#8221;http://maven.apache.org/SETTINGS/1.0.0<br />
http://maven.apache.org/xsd/settings-1.0.0.xsd&#8221;&gt;</p>
<p>&nbsp;</p>
<p><b>localRepository:</b> This value is the path of this build system&#8217;s local repository. The default value is ${user.home}/.m2/repository. This element is especially useful for a main build server allowing all logged-in users to build from a common local repository.</p>
<p><b>interactiveMode:</b> true if Maven should attempt to interact with the user for input, false if not. Defaults to true.</p>
<p><b>usePluginRegistry:</b> true if Maven should use the ${user.home}/.m2/plugin-registry.xml file to manage plugin versions, defaults to false. Note that for the current version of Maven 2.0, the plugin-registry.xml file should not be depended upon. Consider it dormant for now.</p>
<p><b>offline:</b> true if this build system should operate in offline mode, defaults to false. This element is useful for build servers which cannot connect to a remote repository, either because of network setup or security reasons.</p>
<p><b>pluginGroups:</b> This element contains a list of pluginGroup elements, each contains a groupId. The list is searched when a plugin is used and the groupId is not provided in the command line. This list automatically contains org.apache.maven.plugins and org.codehaus.mojo. For example, given the above settings the Maven command line may execute org.mortbay.jetty:jetty-maven-plugin:run with the truncated command:</p>
<p><b>Servers</b><br />
The repositories for download and deployment are defined by the repositories and distributionManagement elements of the POM. However, certain settings such as username and password should not be distributed along with the pom.xml. This type of information should exist on the build server in the settings.xml.</p>
<p><b>Mirrors</b><br />
epositories are declared inside a project, which means that if you have your own custom repositories, those sharing your project easily get the right settings out of the box. However, you may want to use an alternative mirror for a particular repository without changing the project files.</p>
<p>Some reasons to use a mirror are:</p>
<p>There is a synchronized mirror on the internet that is geographically closer and faster<br />
You want to replace a particular repository with your own internal repository which you have greater control over<br />
You want to run maven-proxy to provide a local cache to a mirror and need to use its URL instead</p>
<p><b>Proxies:</b> This is basically used for proxies’ setup</p>
<p><b>Profiles</b><br />
The profile element in the settings.xml is a truncated version of the pom.xml profile element. It consists of the activation, repositories, pluginRepositories and properties elements. The profile elements only include these four elements because they concerns themselves with the build system as a whole (which is the role of the settings.xml file), not about individual project object model settings.</p>
<p>If a profile is active from settings, its values will override any equivalently ID&#8217;d profiles in a POM or profiles.xml file.</p>
<h1><a class="mceItemAnchor" name="_Toc244331211"></a>First Maven project?</h1>
<p>To create our first Maven project we are going to use Maven&#8217;s archetype mechanism. An archetype is defined as an original pattern or model from which all other things of the same kind are made. In Maven, an archetype is a template of a project which is combined with some user input to produce a working Maven project that has been tailored to the user&#8217;s requirements.</p>
<p>On to creating your first project! In order to create the simplest of Maven projects, execute the following from the command line:</p>
<p>mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.mycompany.app -DartifactId=my-app</p>
<p>Once you have executed this command, you will notice a few things have happened. First, you will notice that a directory named my-app has been created for the new project, and this directory contains a file named pom.xml that should look like this:</p>
<p>xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;<br />
xsi:schemaLocation=&#8221;http://maven.apache.org/POM/4.0.0<br />
http://maven.apache.org/xsd/maven-4.0.0.xsd&#8221;&gt;<br />
4.0.0<br />
com.mycompany.app<br />
my-app<br />
jar 1.0-SNAPSHOT<br />
Maven Quick Start Archetype<br />
http://maven.apache.org</p>
<p>junit<br />
junit<br />
3.8.1<br />
test</p>
<p><b>pom.xml</b> contains the Project Object Model (POM) for this project. The POM is the basic unit of work in Maven. This is important to remember because Maven is inherently project-centric in that everything revolves around the notion of a project. In short, the POM contains every important piece of information about your project and is essentially one-stop-shopping for finding anything related to your project.</p>
<p>This is a very simple POM but still displays the key elements every POM contains, so let&#8217;s walk through each of them to familiarize you with the POM essentials:</p>
<p><b>project:</b> This is the top-level element in all Maven pom.xml files.<br />
modelVersion: This element indicates what version of the object model this POM is using. The version of the model itself changes very infrequently but it is mandatory in order to ensure stability of use if and when the Maven developers deem it necessary to change the model.</p>
<p><b>groupId:</b> This element indicates the unique identifier of the organization or group that created the project. The groupId is one of the key identifiers of a project and is typically based on the fully qualified domain name of your organization. For example org.apache.maven.plugins is the designated groupId for all Maven plug-ins.</p>
<p><b>artifactId:</b> This element indicates the unique base name of the primary artifact being generated by this project. The primary artifact for a project is typically a JAR file. Secondary artifacts like source bundles also use the artifactId as part of their final name. A typical artifact produced by Maven would have the form -. (for example, myapp-1.0.jar).</p>
<p><b>packaging:</b> This element indicates the package type to be used by this artifact (e.g. JAR, WAR, EAR, etc.). This not only means if the artifact produced is JAR, WAR, or EAR but can also indicate a specific lifecycle to use as part of the build process. (The lifecycle is a topic we will deal with further on in the guide. For now, just keep in mind that the indicated packaging of a project can play a part in customizing the build lifecycle.) The default value for the packaging element is JAR so you do not have to specify this for most projects.</p>
<p><b>version:</b> This element indicates the version of the artifact generated by the project. Maven goes a long way to help you with version management and you will often see the SNAPSHOT designator in a version, which indicates that a project is in a state of development. We will discuss the use of snapshots and how they work further on in this guide.</p>
<p><b>name:</b> This element indicates the display name used for the project. This is often used in Maven&#8217;s generated documentation.</p>
<p><b>url:</b> This element indicates where the project&#8217;s site can be found. This is often used in Maven&#8217;s generated documentation.</p>
<p><b>description:</b> This element provides a basic description of your project. This is often used in Maven&#8217;s generated documentation.</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/introduction-of-maven/">Introduction of Maven &#8211; Complete Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/introduction-of-maven/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EC2Deploy and the Cloud Tools Maven plugin are now available</title>
		<link>https://www.scmgalaxy.com/tutorials/ec2deploy-and-the-cloud-tools-maven-plugin-are-now-available/</link>
					<comments>https://www.scmgalaxy.com/tutorials/ec2deploy-and-the-cloud-tools-maven-plugin-are-now-available/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 10 Mar 2010 05:59:56 +0000</pubDate>
				<category><![CDATA[Amazon (Elastic Cloud)]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Tools]]></category>
		<category><![CDATA[Cloud Tools Maven Plugin]]></category>
		<category><![CDATA[Deploy]]></category>
		<category><![CDATA[Deploy to Amazon EC2]]></category>
		<category><![CDATA[Deploy web application project to EC2]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[ec2deploy]]></category>
		<category><![CDATA[EC2Deploy framework]]></category>
		<category><![CDATA[Maven plugin]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Web application]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/10/ec2deploy-and-the-cloud-tools-maven-plugin-are-now-available/</guid>

					<description><![CDATA[<p>I&#8217;m pleased to announce that EC2Deploy &#8211; a Groovy-based framework for deploying Java EE applications to Amazon EC2 &#8211; is [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/ec2deploy-and-the-cloud-tools-maven-plugin-are-now-available/">EC2Deploy and the Cloud Tools Maven plugin are now available</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4112 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/ec2deploy-and-the-cloud-too.png" alt="ec2deploy-cloud-tools-maven-plugin" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/ec2deploy-and-the-cloud-too.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/ec2deploy-and-the-cloud-too-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p>I&#8217;m pleased to announce that <a href="http://www.chris-richardson.blog-city.com/running_jee_applications_on_amazon_ec2_or_deploying_to_20_m.htm">EC2Deploy</a> &#8211; a Groovy-based framework for deploying Java EE applications to Amazon EC2 &#8211; is now available as part of the <a href="http://code.google.com/p/cloudtools/">Cloud Tools</a> open source project.</p>
<p>There are three main parts to Cloud Tools:</p>
<ul>
<li>The EC2Deploy framework</li>
<li>Amazon Machine Images (AMIs) that are configured to run Tomcat and work with EC2Deploy</li>
<li>A Maven plugin that uses EC2Deploy to deploy a web application to EC2</li>
</ul>
<p>I’m especially excited about the Maven plugin. Once you have configured the plugin for your web application you can use the following goals:</p>
<ul>
<li>cloudtools:deploy – launch the EC2 instances and deploy the web application</li>
<li>cloudtools:redeploy – redeploy the web application (upload the changes and restart tomcat)</li>
<li>cloudtools:jmeter – run a Jmeter test</li>
<li>cloudtools:stop – stop the EC2 instances</li>
</ul>
<p>Cloudtools is still work in progress but it let’s you deploy a web application on EC2 in just a few minutes.  To learn more go to <a href="http://code.google.com/p/cloudtools/">Cloud Tools</a>.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/ec2deploy-and-the-cloud-tools-maven-plugin-are-now-available/">EC2Deploy and the Cloud Tools Maven plugin are now available</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/ec2deploy-and-the-cloud-tools-maven-plugin-are-now-available/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
