{"id":1971,"date":"2017-12-07T06:37:27","date_gmt":"2017-12-07T06:37:27","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/?p=1971"},"modified":"2021-11-18T07:10:17","modified_gmt":"2021-11-18T07:10:17","slug":"mavens-objectives","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/mavens-objectives\/","title":{"rendered":"Maven&#8217;s Objectives"},"content":{"rendered":"<p><strong>scmuser created the topic: Maven&#8217;s Objectives<\/strong><br>\nWhat is the maven main objectives?<\/p>\n<p><strong>rajeshatbuzz replied the topic: Re:Maven&#8217;s Objectives<\/strong><br>\nMaven&#8217;s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:<br>\n\u2022 Making the build process easy<br>\n\u2022 Providing a uniform build system<br>\n\u2022 Providing quality project information<br>\n\u2022 Providing guidelines for best practices development<br>\n\u2022 Allowing transparent migration to new features<\/p>\n<p>Making the build process easy<br>\nWhile using Maven doesn&#8217;t eliminate the need to know about the underlying mechanisms, Maven does provide a lot of shielding from the details.<\/p>\n<p>Providing a uniform build system<br>\nMaven allows a project to build using its project object model (POM) and a set of plugins that are shared by all projects using Maven, providing a uniform build system. Once you familiarize yourself with how one Maven project builds you automatically know how all Maven projects build saving you immense amounts of time when trying to navigate many projects.<\/p>\n<p>Providing quality project information<br>\nMaven provides plenty of useful project information that is in part taken from your POM and in part generated from your project&#8217;s sources. For example, Maven can provide:<br>\n\u2022 Change log document created directly from source control<br>\n\u2022 Cross referenced sources<br>\n\u2022 Mailing lists<br>\n\u2022 Dependency list<br>\n\u2022 Unit test reports including coverage<br>\nAs Maven improves the information set provided will improve, all of which will be transparent to<br>\nusers of Maven.<br>\nOther products can also provide Maven plugins to allow their set of project information alongside<br>\nsome of the standard information given by Maven, all still based on the POM.<\/p>\n<p>Providing guidelines for best practices development<br>\nMaven aims to gather current principles for best practices development, and make it easy to guide a<br>\nproject in that direction.<br>\nFor example, specification, execution, and reporting of unit tests are part of the normal build cycle<br>\nusing Maven. Current unit testing best practices were used as guidelines:<br>\n\u2022 Keeping your test source code in a separate, but parallel source tree<br>\n\u2022 Using test case naming conventions to locate and execute tests<br>\n\u2022 Have test cases setup their environment and don&#8217;t rely on customizing the build for test<br>\npreparation.<\/p>\n<p>Maven also aims to assist in project workflow such as release management and issue tracking.<br>\nMaven also suggests some guidelines on how to layout your project&#8217;s directory structure so that once<br>\nyou learn the layout you can easily navigate any other project that uses Maven and the same defaults.<\/p>\n<p>Allowing transparent migration to new features<br>\nMaven provides an easy way for Maven clients to update their installations so that they can take<br>\nadvantage of any changes that been made to Maven itself.<br>\nInstallation of new or updated plugins from third parties or Maven itself has been made trivial for this<br>\nreason.<\/p>\n\n<div class=\"epyt-gallery\" data-currpage=\"1\" id=\"epyt_gallery_63801\"><iframe loading=\"lazy\"  id=\"_ytid_24329\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  data-epytgalleryid=\"epyt_gallery_63801\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe><div class=\"epyt-gallery-list\"><div>Sorry, there was a YouTube error.<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>scmuser created the topic: Maven&#8217;s Objectives What is the maven main objectives? rajeshatbuzz replied the topic: Re:Maven&#8217;s Objectives Maven&#8217;s primary goal is to allow a developer to comprehend the complete&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[29],"tags":[161],"class_list":["post-1971","post","type-post","status-publish","format-standard","hentry","category-maven","tag-maven"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=1971"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1971\/revisions"}],"predecessor-version":[{"id":25710,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/1971\/revisions\/25710"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=1971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=1971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=1971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}