{"id":58,"date":"2019-02-23T02:01:16","date_gmt":"2019-02-23T02:01:16","guid":{"rendered":"https:\/\/www.kindsonthegenius.com\/spring-boot\/?p=58"},"modified":"2019-03-02T04:07:07","modified_gmt":"2019-03-02T04:07:07","slug":"05-spring-boot-dependency-management","status":"publish","type":"post","link":"https:\/\/kindsonthegenius.com\/spring-boot\/05-spring-boot-dependency-management\/","title":{"rendered":"Spring Boot &#8211; Dependency Management"},"content":{"rendered":"<p>In this lesson, you will learn about build systems, Maven and Gradle.<\/p>\n<p>But before we discuss Maven and Gradle, let&#8217;s first talk about Dependency Management<\/p>\n<p>&nbsp;<\/p>\n<h4>What is Dependency Management?<\/h4>\n<p>According to the Maven documentation, dependency management is &#8220;a mechanism for centralizing dependency information&#8221;.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>About Dependency<\/strong><\/p>\n<p>First, let&#8217;s understand what dependency is. So when you are developing an application, you would probably need a number of libraries(normally jar files). It means that your application depends of these libraries. Hence the name dependency.<\/p>\n<p>&nbsp;<\/p>\n<p>Now you need a way to assemble all these libraries and manage them in a centralized fashion. This also means that these libraries would be made available at compile time or runtime when needed. This is what dependency management does.<\/p>\n<p>So the process of dependency management involves locating these dependencies and adding them to the classpath.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Maven Dependency Management<\/strong><\/p>\n<p>When you want to create a new project, you probably see that you can create Maven project. Now Maven is a popular dependency management tool. If you choose to create a Maven project, then you are simply saying that you would like to use Maven to manage dependencies.<\/p>\n<p>If you are creating a spring application however, spring boot provides you with the initial dependencies you need for your application. But then, you can still add more from <a href=\"https:\/\/mvnrepository.com\/repos\/central\" target=\"_blank\" rel=\"noopener\">Maven Central Repository<\/a><\/p>\n<p>You already know how to do this from Tutorial 3 and Tutorial 4.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Maven Central Repository<\/strong><\/p>\n<p>You can find hundreds of dependencies hosted in this repository. You simply need to search for it, then copy it to your pom.xml &lt;dependencies&gt;&lt;\/dependencies&gt; section.<\/p>\n<p>Structure of the dependencies section of the pom.xml file is shown below<\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<pre style=\"margin: 0; line-height: 125%\"><span style=\"color: #007700\">&lt;dependencies&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;dependency&gt;<\/span>\r\n\t\t<span style=\"color: #007700\">&lt;groupId&gt;<\/span>org.springframework.boot<span style=\"color: #007700\">&lt;\/groupId&gt;<\/span>\r\n\t\t<span style=\"color: #007700\">&lt;artifactId&gt;<\/span>spring-boot-starter<span style=\"color: #007700\">&lt;\/artifactId&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;\/dependency&gt;<\/span>\r\n\r\n\t<span style=\"color: #007700\">&lt;dependency&gt;<\/span>\r\n\t\t<span style=\"color: #007700\">&lt;groupId&gt;<\/span>org.springframework.boot<span style=\"color: #007700\">&lt;\/groupId&gt;<\/span>\r\n\t\t<span style=\"color: #007700\">&lt;artifactId&gt;<\/span>spring-boot-starter-test<span style=\"color: #007700\">&lt;\/artifactId&gt;<\/span>\r\n\t\t<span style=\"color: #007700\">&lt;scope&gt;<\/span>test<span style=\"color: #007700\">&lt;\/scope&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;\/dependency&gt;<\/span>\r\n\t\r\n\t<span style=\"color: #888888\">&lt;!-- https:\/\/mvnrepository.com\/artifact\/org.springframework.boot\/spring-boot-starter-web --&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;dependency&gt;<\/span>\r\n\t    <span style=\"color: #007700\">&lt;groupId&gt;<\/span>org.springframework.boot<span style=\"color: #007700\">&lt;\/groupId&gt;<\/span>\r\n\t    <span style=\"color: #007700\">&lt;artifactId&gt;<\/span>spring-boot-starter-web<span style=\"color: #007700\">&lt;\/artifactId&gt;<\/span>\r\n\t    <span style=\"color: #007700\">&lt;version&gt;<\/span>2.1.2.RELEASE<span style=\"color: #007700\">&lt;\/version&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;\/dependency&gt;<\/span>\r\n\t\r\n\t<span style=\"color: #888888\">&lt;!-- https:\/\/mvnrepository.com\/artifact\/org.springframework\/spring-webmvc --&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;dependency&gt;<\/span>\r\n\t    <span style=\"color: #007700\">&lt;groupId&gt;<\/span>org.springframework<span style=\"color: #007700\">&lt;\/groupId&gt;<\/span>\r\n\t    <span style=\"color: #007700\">&lt;artifactId&gt;<\/span>spring-webmvc<span style=\"color: #007700\">&lt;\/artifactId&gt;<\/span>\r\n\t    <span style=\"color: #007700\">&lt;version&gt;<\/span>5.1.3.RELEASE<span style=\"color: #007700\">&lt;\/version&gt;<\/span>\r\n\t<span style=\"color: #007700\">&lt;\/dependency&gt;<\/span>\r\n\t\t\t\r\n<span style=\"color: #007700\">&lt;\/dependencies&gt;<\/span>\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Watch the Video<br \/>\n<iframe loading=\"lazy\" width=\"100%\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/HGtCZspKBMo\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>In this lesson, you will learn about build systems, Maven and Gradle. But before we discuss Maven and Gradle, let&#8217;s first talk about Dependency Management &hellip; <!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":59,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-boot-tutorials"],"_links":{"self":[{"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":2,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":61,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/posts\/58\/revisions\/61"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/media\/59"}],"wp:attachment":[{"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kindsonthegenius.com\/spring-boot\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}