repository tag under distributionManagement vs repositories?

Maven

Maven Problem Overview


I see repository tag under parent element i.e distributionManagement and repositories. What's the difference ?

<distributionManagement>
	<repository>
		<id>...</id>
		<name>...</name>
		<url>...</url>
	</repository>
</distributionManagement> 

<repositories>
	<repository>
		<id>...</id>
		<name>...</name>
		<layout>default</layout>
		<url>...</url>
	</repository>
</repositories>

My understanding repository element under distributionManagement element specifies where it will deploy the artifacts at the time of deployment. It will come into picture only while mvn deploy i.e deployment time not during mvn install i.e build time. Right?

repository element under repositories element specifies from where dependencies needs to be picked up. It will come into picture only while mvn install not during mvn deploy. Right?

Maven Solutions


Solution 1 - Maven

You have it exactly right!

From the POM reference: >Where as the repositories element specifies in the POM the location and manner in which Maven may download remote artifacts for use by the current project, distributionManagement specifies where (and how) this project will get to a remote repository when it is deployed. The repository elements will be used for snapshot distribution if the snapshotRepository is not defined.

  • Repositories declared under the distributionManagement element will be used for deployment, i.e. when running mvn deploy.
  • The repositories element will be used for downloading dependencies of the project. The command is not necessarily mvn install but any command that requires Maven to fetch artifacts from a repository.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionemillyView Question on Stackoverflow
Solution 1 - MavenTunakiView Answer on Stackoverflow