163 lines
5.0 KiB
Markdown
163 lines
5.0 KiB
Markdown
# Common Plugin.
|
|
|
|
<!-- TOC -->
|
|
* [Common Plugin.](#common-plugin)
|
|
* [Plugins.](#plugins)
|
|
* [Common.](#common)
|
|
* [Plugin Common.](#plugin-common)
|
|
* [Plugin Common Build.](#plugin-common-build)
|
|
* [Plugin Common Detekt.](#plugin-common-detekt)
|
|
* [Plugin Common Ktlint.](#plugin-common-ktlint)
|
|
* [Plugin Common Project.](#plugin-common-project)
|
|
* [Library.](#library)
|
|
* [Plugin Library.](#plugin-library)
|
|
* [Plugin Library Manifest.](#plugin-library-manifest)
|
|
* [Plugin Library publish.](#plugin-library-publish)
|
|
* [Service](#service)
|
|
* [Plugin Service](#plugin-service)
|
|
* [Plugin Service Container](#plugin-service-container)
|
|
* [Configuration](#configuration)
|
|
* [Gradle Tasks](#gradle-tasks)
|
|
* [Plugin Service Test Integration](#plugin-service-test-integration)
|
|
* [Plugin Service Process Resource](#plugin-service-process-resource)
|
|
* [Publish gradle plugin locally.](#publish-gradle-plugin-locally)
|
|
* [Releasing gradle plugin.](#releasing-gradle-plugin)
|
|
* [Publish gradle plugin to repository.](#publish-gradle-plugin-to-repository)
|
|
* [Global gradle properties.](#global-gradle-properties)
|
|
<!-- TOC -->
|
|
|
|
## Plugins.
|
|
|
|
### Common.
|
|
|
|
#### Plugin Common.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.common`
|
|
|
|
Set core Java and Kotlin settings and overweight project version with git version.
|
|
|
|
#### Plugin Common Build.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.common-build`
|
|
|
|
Display name and version, add `buildInfo` to `build` task.
|
|
|
|
#### Plugin Common Detekt.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.common-detekt`
|
|
|
|
Detect is a code smell analysis for your Kotlin projects.
|
|
|
|
#### Plugin Common Ktlint.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.common-ktlint`
|
|
|
|
Ktlint enforces consistent code style and formatting across Kotlin codebases.
|
|
|
|
#### Plugin Common Project.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.common-project`
|
|
|
|
Display project, Gradle, and Java information.
|
|
|
|
### Library.
|
|
|
|
#### Plugin Library.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.library`
|
|
|
|
Default setting and tasks for libraries.
|
|
|
|
#### Plugin Library Manifest.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.library-manifest`
|
|
|
|
Extend manifest in library jar file.
|
|
|
|
#### Plugin Library publish.
|
|
|
|
id `ltd.lulz.plugin.common-plugin.library-publish`
|
|
|
|
Configuration for publishing project artifacts to a remote Maven repository.
|
|
|
|
### Service
|
|
|
|
#### Plugin Service
|
|
|
|
id `ltd.lulz.plugin.common-plugin.service`
|
|
|
|
Default setting and tasks for services.
|
|
|
|
#### Plugin Service Container
|
|
|
|
id `ltd.lulz.plugin.common-plugin.service-container`
|
|
|
|
Configuration for running project in docker locally during development.
|
|
|
|
##### Configuration
|
|
|
|
* properties `container.network`, environment `CONTAINER_NETWORK`, or default `develop`
|
|
* properties `container.port.expose`, environment `CONTAINER_PORT_EXPOSE`, or default `8080`
|
|
* properties `container.port.host`, environment `CONTAINER_PORT_HOST`, or default `8080`
|
|
* properties `container.profiles`, environment `CONTAINER_PROFILES`, or default `docker`
|
|
* properties `docker.port.expose`, environment `DOCKER_PORT_EXPOSE`, or default `8080`
|
|
|
|
container and docker ports can be a single port (e.g., 8080) or multiple ports separated by commas (e.g., 8080,8443)
|
|
|
|
##### Gradle Tasks
|
|
|
|
* `containerCreate` create docker container with network and spring boot profile.
|
|
* `containerStart` starts docker container.
|
|
* `containerStop` stops docker container.
|
|
* `containerNetworkCheck` check if network exist.
|
|
* `containerNetworkCreate` creates network.
|
|
* `containerNetworkRemove` removes network.
|
|
|
|
#### Plugin Service Test Integration
|
|
|
|
id `ltd.lulz.plugin.common-plugin.service-test-integration`
|
|
|
|
Adding task `testIntegration` to run integration test, add to `verification` group and add to task `check`.
|
|
|
|
Adding intellij support `src/test-integration/java`, `src/test-integration/kotlin`, and `src/test-integration/resources` as test module in intellij.
|
|
|
|
Adding dependencies support `testIntegrationImplementation()`, and `testIntegrationRuntimeOnly()` as part of Gradle.
|
|
|
|
#### Plugin Service Process Resource
|
|
|
|
id `ltd.lulz.plugin.common-plugin.service-process-resource`
|
|
|
|
Assign values to `application.yml` from Gradle.
|
|
|
|
## Publish gradle plugin locally.
|
|
|
|
```shell
|
|
./gradlew clean publishToMavenLocal
|
|
```
|
|
|
|
## Releasing gradle plugin.
|
|
|
|
Run release pipeline from `master` branch.
|
|
|
|
### Publish gradle plugin to repository.
|
|
|
|
```shell
|
|
./gradlew clean publishAllPublicationsToGiteaPackagesRepository
|
|
```
|
|
|
|
## 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:
|
|
|
|
1. Open or create the `gradle.properties` file 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\`.
|
|
2. Add the following lines to the `gradle.properties` file:
|
|
```properties
|
|
repository.<name>.user=your_user
|
|
repository.<name>.token=your_token_value
|
|
```
|
|
or use environment variables `REPOSITORY_USER` and `REPOSITORY_TOKEN`
|