19

I use swagger to generate web services clients on my project. The generated code produce a library that can be use as a Maven lib. I already successfully deploy release version into my private sonatype-nexus.

I wonder what is the difference between altDeploymentRepository and altReleaseDeploymentRepository? How mvn deploy select which repository to use if the two parameters are set?

As the apache-maven deploy documentation said :

altDeploymentRepository: Specifies an alternative repository to which the project artifacts should be deployed ( other than those specified in ). Format: id::layout::url

altReleaseDeploymentRepository: The alternative repository to use when the project has a final version.

altSnapshotDeploymentRepository: The alternative repository to use when the project has a snapshot version.

What exactly does

when the project has a final version.

mean?

Tunaki
  • 132,869
  • 46
  • 340
  • 423
Lionel Briand
  • 1,732
  • 2
  • 13
  • 21

1 Answers1

29

When altReleaseDeploymentRepository is specified, it is always used when the project has a release (or "final") version, i.e. is not a snapshot version. When altSnapshotDeploymentRepository is specified, it is always used when the project has a snapshot version. altDeploymentRepository is a default alternate deployment repository when none of the above repository were specified or used.

So to put it another way, if you have a release version, then:

  • altReleaseDeploymentRepository will be used if specified;
  • otherwise altDeploymentRepository will be used if specified;
  • otherwise the release remote repository declared in the <distributionManagement><repository> POM element will be used if specified;
  • otherwise the plugin will error because it didn't find any remote repository to deploy to.

Similarly, if you have a snapshot version, then:

  • altSnapshotDeploymentRepository will be used if specified;
  • otherwise altDeploymentRepository will be used if specified;
  • otherwise the snapshot remote repository declared in the <distributionManagement><snapshotRepository> POM element will be used if specified;
  • otherwise the release remote repository declared in the <distributionManagement><repository> POM element will be used if specified;
  • otherwise the plugin will error because it didn't find any remote repository to deploy to.
Tunaki
  • 132,869
  • 46
  • 340
  • 423