How to differentiate between deploying releases vs snapshots
Solution 1:
If your project.version
contains SNAPSHOT
(f.e., 1.2-SNAPSHOT) and you execute mvn deploy
, artifacts will be deployed to your snapshot repository. If it doesn't (f.e., 1.2) - they will be deployed to your release repository.
Solution 2:
You can execute mvn deploy
.
If your POM version contains SNAPSHOT
as suffix, it will deploy into the repository configured under distributionManagement.snapshotRepository
.
If your POM doesn't contain SNAPSHOT
suffix, it will deploy into the repository configured under distributionManagement.repository
.
However, I do recommend you to use maven-release-plugin
to manage versioning and deployment. By running mvn -B release:clean release:prepare release:perform
, in resume:
- the suffix
SNAPSHOT
is removed from the version (e.g.2.1-SNAPSHOT
->2.1
); - the application is built so as to generate JAR files;
- the code is committed to your code repository (e.g. git) and tagged (e.g.
2.1
); - the JAR is deployed into your release repository (not snapshot repo);
- the version is incremented and the suffix
SNAPSHOT
is added (e.g.2.2-SNAPSHOT
).