Hlæja Common Plugin
Plugins for the libraries, lofty and grand, Plugins for the services, steadfast as stone, Plugins for the common, bound to their fate, Using the one plugin to rule them all, and in automation bind them, In the realm of code, where the builds take form.
Plugins
Plugin Common
id ltd.hlaeja.plugin.hlaeja-common-plugin.common
Set core Java and Kotlin settings and overweight project version with git version.
Gradle Tasks
buildInfodisplay name and version, add tobuildtask.projectInfodisplay project, Gradle, and Java information
Plugin Common Detekt
id ltd.hlaeja.plugin.hlaeja-common-plugin.common-detekt
Detect is a code smell analysis for your Kotlin projects.
Plugin Common Ktlint
id ltd.hlaeja.plugin.hlaeja-common-plugin.common-ktlint
Ktlint enforces consistent code style and formatting across Kotlin codebases.
Plugin Library
id ltd.hlaeja.plugin.hlaeja-common-plugin.library
Default setting and tasks for libraries.
Plugin Library Manifest
id ltd.hlaeja.plugin.hlaeja-common-plugin.library-manifest
Extend manifest in library jar file.
Plugin Library publish
id ltd.hlaeja.plugin.hlaeja-common-plugin.library-publish
Configuration for publishing project artifacts to a remote Maven repository.
Plugin Service
id ltd.hlaeja.plugin.hlaeja-common-plugin.service
Default setting and tasks for services.
Plugin Service Container
id ltd.hlaeja.plugin.hlaeja-common-plugin.service-container
Configuration for running project in docker locally during development.
Configuration
- properties
container.network, environmentCONTAINER_NETWORK, or defaultdevelop - properties
container.port.expose, environmentCONTAINER_PORT_EXPOSE, or default8080 - properties
container.port.host, environmentCONTAINER_PORT_HOST, or default8080 - properties
container.profiles, environmentCONTAINER_PROFILES, or defaultdocker - properties
docker.port.expose, environmentDOCKER_PORT_EXPOSE, or default8080
container and docker ports can be a single port (e.g., 8080) or multiple ports separated by commas (e.g., 8080,8443)
Gradle Tasks
containerCreatecreate docker container with network and spring boot profile.containerStartstarts docker container.containerStopstops docker container.containerNetworkCheckcheck if network exist.containerNetworkCreatecreates network.containerNetworkRemoveremoves network.
Plugin Service Integration Test
id ltd.hlaeja.plugin.hlaeja-common-plugin.service-integration-test
Adding task integrationTest to run integration test, add to verification group and add to task check.
Adding intellij support src/integration-test/java, src/integration-test/kotlin, and src/integration-test/resources as test module in intellij.
Adding dependencies support integrationTestImplementation(), and integrationTestRuntimeOnly() as part of Gradle.
Plugin Service Process Resource
id ltd.hlaeja.plugin.hlaeja-common-plugin.service-process-resource
Assign values to application.yml from Gradle.
Plugin Certificate
id ltd.hlaeja.plugin.hlaeja-common-plugin.cetificat
Copy certificate to build resources by placing one or more of private_key.pem, public_key.pem, or keystore.p12 in /cert folder.
Releasing plugin
Run release.sh script from master branch.
Publishing plugin
Publish plugin locally
./gradlew clean build publishToMavenLocal
Publish plugin to repository
./gradlew clean build publish
Global gradle properties
To authenticate with Gradle to access repositories that require authentication, you can set your user and token in the gradle.properties file.
Here's how you can do it:
- Open or create the
gradle.propertiesfile in your Gradle user home directory:- On Unix-like systems (Linux, macOS), this directory is typically
~/.gradle/. - On Windows, this directory is typically
C:\Users\<YourUsername>\.gradle\.
- On Unix-like systems (Linux, macOS), this directory is typically
- Add the following lines to the
gradle.propertiesfile:or use environment variablesrepository.user=your_user repository.token=your_token_valueREPOSITORY_USERandREPOSITORY_TOKEN