title: How does spring-boot:run work with maven?
body: <p>I'm learning the maven build process, and there's on point of contention that stands out as not making a whole lot of sense. </p>
  
  <p>The way I understand maven, there's the default lifecycles (default, site, clean), each of which has multiple phases. There are some built-in plugins associated with a few phases, and by adding additional plugins, you are able to add extra functionality to the pre-existing phases. </p>
  
  <p>When you specify a phase to run directly within maven, it will go through all the phases up to this point within the same lifecycle, and end with executing your specified phase. To the best of my knowledge however, <code>spring-boot:run</code> is a goal, and thus should not invoke other phases when run. That being said, running <code>spring-boot:run</code> via maven does run other phases (<code>default-cli</code>, <code>pre-unit-test</code>, <code>default-resources</code>, <code>reserve-container-port</code>, and some others). It looks to me that spring has created some new phases (<code>reserve-container-port</code> for instance), but I'm not sure how to find the jar file in which the configuration for these is located.</p>
  
  <p>My questions thus are twofold:</p>
  
  <ol>
  <li>Is <code>spring-boot:run</code> a goal as I understand it to be? If so, how does running this goal in turn run other phases? To the best of my knowledge, only specifying a phase as a target will run the other previous phases in order, not directly specifying a goal.</li>
  <li>Where is the configuration file for all of this located? In which spring jar file can I find the configuration file that lets all of the above work correctly.</li>
  </ol>