#[[mvn := './mvnw -B'
artifact-id := ']]#${artifactId}#[['

_default:
  @just --list

################################################################################
# BASIC MANAGEMENT
################################################################################

clean:
  @{{ mvn }} clean

################################################################################
# BUILD MANAGEMENT
################################################################################

build-package:
  @{{ mvn }} -P{{ artifact-id }}:build clean package

build-install:
  @{{ mvn }} -P{{ artifact-id }}:build clean install

################################################################################
# VERSIONS MANAGEMENT
################################################################################

versions-updates-available:
  @{{ mvn }} -P{{ artifact-id }}:versions versions:display-property-updates

versions-update:
  @{{ mvn }} -P{{ artifact-id }}:versions versions:update-properties

versions-commit:
  @{{ mvn }} -P{{ artifact-id }}:versions versions:commit

versions-revert:
  @{{ mvn }} -P{{ artifact-id }}:versions versions:revert

################################################################################
# LICENSE MANAGEMENT
################################################################################

license-update:
  @{{ mvn }} -P{{ artifact-id }}:license license:update-project-license

################################################################################
# QUALITY MANAGEMENT
################################################################################

quality-check:
  @{{ mvn }} -P{{ artifact-id }}:quality verify

################################################################################
# RELEASE MANAGEMENT
################################################################################

keyname-profile := 'keyname-general'
publishing-server-id := f'{{ artifact-id }}-usertoken'

release-clean:
  @{{ mvn }} -P{{ artifact-id }}:release release:clean

release-major:
  @{{ mvn }} \
    -P{{ artifact-id }}:build,{{ artifact-id }}:release release:prepare \
    -DprojectVersionPolicyId=SemVerMajorRelease

release-minor:
  @{{ mvn }} \
    -P{{ artifact-id }}:build,{{ artifact-id }}:release release:prepare \
    -DprojectVersionPolicyId=SemVerMinorRelease

release-patch:
  @{{ mvn }} -P{{ artifact-id }}:build,{{ artifact-id }}:release release:prepare

release-publish:
  @{{ mvn }} \
    -P{{ artifact-id }}:build,{{ artifact-id }}:release release:perform \
    "-DkeynameProfile={{ keyname-profile }}" \
    "-Darguments=-DpublishingServerId={{ publishing-server-id }}"

release-rollback:
  @{{ mvn }} -P{{ artifact-id }}:release release:rollback]]#
