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

_default:
  @just --list

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

clean:
  @{{ mvn }} clean

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

build-package:
  @{{ mvn }} -Pjava-library:build clean package

build-install:
  @{{ mvn }} -Pjava-library:build clean install

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

versions-updates-available:
  @{{ mvn }} -Pjava-library:versions versions:display-property-updates

versions-update:
  @{{ mvn }} -Pjava-library:versions versions:update-properties

versions-commit:
  @{{ mvn }} -Pjava-library:versions versions:commit

versions-revert:
  @{{ mvn }} -Pjava-library:versions versions:revert

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

license-update:
  @{{ mvn }} -Pjava-library:license license:update-project-license

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

quality-check:
  @{{ mvn }} -Pjava-library:quality verify

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

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

release-clean:
  @{{ mvn }} -Pjava-library:release release:clean

release-major:
  @{{ mvn }} \
    -Pjava-library:build,java-library:release release:prepare \
    -DprojectVersionPolicyId=SemVerMajorRelease

release-minor:
  @{{ mvn }} \
    -Pjava-library:build,java-library:release release:prepare \
    -DprojectVersionPolicyId=SemVerMinorRelease

release-patch:
  @{{ mvn }} -Pjava-library:build,java-library:release release:prepare

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

release-rollback:
  @{{ mvn }} -Pjava-library:release release:rollback]]#
