repository tag under distributionManagement vs repositories?
MavenMaven 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 runningmvn deploy
. - The
repositories
element will be used for downloading dependencies of the project. The command is not necessarilymvn install
but any command that requires Maven to fetch artifacts from a repository.