Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/h-sslefree/semver-maven-plugin
The semver-maven-plugin is used to determine the next version of a MAVEN project. Symantic versioning is used to specify the version symantics.
https://github.com/h-sslefree/semver-maven-plugin
java maven maven-plugin mavencentral semantic-versioning
Last synced: about 17 hours ago
JSON representation
The semver-maven-plugin is used to determine the next version of a MAVEN project. Symantic versioning is used to specify the version symantics.
- Host: GitHub
- URL: https://github.com/h-sslefree/semver-maven-plugin
- Owner: h-sslefree
- Created: 2017-05-27T20:48:06.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-04T02:54:54.000Z (over 3 years ago)
- Last Synced: 2023-03-06T12:16:54.054Z (almost 2 years ago)
- Topics: java, maven, maven-plugin, mavencentral, semantic-versioning
- Language: Java
- Homepage: https://github.com/h-sslefree/semver-maven-plugin
- Size: 367 KB
- Stars: 7
- Watchers: 1
- Forks: 7
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# semver-maven-plugin
[![Build Status](https://travis-ci.org/h-sslefree/semver-maven-plugin.svg?branch=master)](https://travis-ci.org/h-sslefree/semver-maven-plugin) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=semver-maven-plugin&metric=alert_status)](https://sonarcloud.io/dashboard?id=semver-maven-plugin)
The semver-maven-plugin is used to determine the next version of a MAVEN project. Symantic versioning is used to specify the version symantics.
Check: [semver.org](https://www.semver.org) for more information
## Usage
Include the following depedency in your pom.xml
```
nl.hasslefree.maven.plugins
semver-maven-plugin
3.3.1```
### Run configurations
You have to specify the configuration-tag to set the RUN_MODE.
```nl.hasslefree.maven.plugins
semver-maven-plugin
3.3.1```
The goals that use the **maven-release-plugin** are attached to RUN_MODES:
* RELEASE
* RELEASE_BRANCH
* RELEASE_BRANCH_RPMIt generates the `release.properties` and then the *release:prepare*-goal can be used to make the maven release-artifact.
The goals that are **native** are attached to RUNMODES:
* NATIVE
* NATIVE_BRANCH
* NATIVE_BRANCH_RPM
The **native**-method is developed in version: *3.0.0* to get rid of the dependency on the **maven-release-plugin**.## Goals
* **patch**
Create a bug-fix on your project: 0.0.x.
* **minor**
Create a non-breaking new feature on your project: 0.x.0.
* **major**
Create a breaking changes in your project: x.0.0.
* **rollback**
Rollback a patch, minor or major version. Also deletes created GIT-tags on local and remote repository.
* **cleanup-git-tags**
`@Deprecated`
Cleanup remote and local **build-**tags. Run before the build-server makes a release.### Run the goals
The goals that use the **maven-release-plugin** are attached to RUNMODES:
* RELEASE
* RELEASE_BRANCH
* RELEASE_BRANCH_RPMTo run the goals please execute the following commands:
* `mvn semver:patch release:prepare`
* `mvn semver:minor release:prepare`
* `mvn semver:major release:prepare`The goals that are **native** are attached to RUNMODES:
* NATIVE
* NATIVE_BRANCH
* NATIVE_BRANCH_RPMTo run the goals please execute the following commands:
* `mvn semver:patch`
* `mvn semver:minor`
* `mvn semver:major`
* `mvn semver:rollback`## Build
To build the semver-maven-plugin, execute the following command:
`mvn clean package`
This way you can use a SNAPSHOT-version to test in your applications.
### Development
## Formatting code
Run `mvn fmt:format` to format your code according to the google-style.### Tests
Run `mvn test` to start the unit test suite