Jeff Stano
jstano

Joined on June 14, 2026

Extends com.stano.base for multi-module application builds. Applies the base and jacoco plugins to the root project. Automatically derives project.version from git metadata: '<commitTimestamp>-<commitHash>' (or '<commitTimestamp>-<commitHash>-<buildNumber>' in CI). Inherits the 'root' BaseExtension and the jacocoRootReport aggregate coverage task.

Root-project prerequisite for all com.stano plugins. Registers the 'root' BaseExtension exposing cross-project configuration: javaVersion (default '21'), contextName, mspVersion, Docker registry coordinates, Pact Broker coordinates, and lazy CI metadata providers (branch name, commit hash, commit timestamp, build number). Registers the jacocoRootReport task that aggregates JaCoCo coverage across all subprojects. Must be applied to the root project before any other com.stano plugin.

Docker image build, tag, and push support. Registers docker (build), dockerTag, dockerPush, dockerLogin, dockerLogout, dockerClean, and dockerCleanupImage tasks. Configure images via the docker DSL: image name, Dockerfile path, build args, labels, platforms, and additional build context files. Supports docker buildx (default) with multi-platform builds and automatic AWS ECR login. Automatically stamps images with build provenance labels (branch, commit hash, build number, repository URL). When com.stano.spring-boot is also applied, auto-configures the image name and wires bootWar output as the build context.

Docker Compose file generation and lifecycle management. Registers generateDockerCompose (resolves artifact versions into a docker-compose.yml template), dockerComposeUp, and dockerComposeDown tasks. Configure the template path, output file, and token replacements via the dockerCompose DSL. Template tokens use {{group:name}} syntax and are resolved from the docker configuration or explicit templateToken(key, value) entries.

Docker container run lifecycle management. Registers dockerRun, dockerStop, dockerRemoveContainer, dockerRunStatus, and dockerNetworkModeStatus tasks. Configure the container via the dockerRun DSL: image, container name, ports, volumes, environment variables, command, network mode, and extra arguments. Supports daemonized containers (default) and ephemeral containers via clean=true (adds --rm).

Core plugin for internal Java/Kotlin subprojects. Applies java-library, Kotlin JVM, JaCoCo, and Spotless (Google Java Format). Configures the Java toolchain from the root BaseExtension's javaVersion (default '21'). Configures tests with JUnit Platform and finalizes them with jacocoTestReport. When mspVersion is set, enforces the MSP BOM, excludes commons-logging and log4j, and auto-wires the MapStruct annotation processor when mapstruct is detected on the classpath. Requires com.stano.base (or com.stano.application) on the root project.

Extends com.stano.java for publishable library subprojects. Adds javadoc and sources JARs and configures Maven publishing to the private stano-maven repository (URL, username, and password from Gradle properties or STANO_MAVEN_URL / STANO_MAVEN_USERNAME / STANO_MAVEN_PASSWORD). Publishing is silently skipped when STANO_MAVEN_URL is not configured. Suppresses enforced-platform Gradle Module Metadata validation warnings.

Extends com.stano.base for multi-module library builds. Applies the base and jacoco plugins to the root project. Does not set a project version — intended for library repositories that manage versioning separately. Inherits the 'root' BaseExtension and the jacocoRootReport aggregate coverage task.

Settings-level plugin applied in settings.gradle. Configures dependency resolution management with mavenLocal(), mavenCentral(), and an optional private stano-maven repository. Configures local build cache and optional S3 remote build cache (enabled via STANO_BUILD_CACHE_TYPE=s3; configured via STANO_BUILD_CACHE_S3_* variables). Pins the Kotlin JVM plugin to a fixed version and self-pins all com.stano plugins to the version bundled with this plugin. Exposes a buildCacheSettings DSL to customize the S3 cache key prefix.

SonarQube analysis integration. Conditionally applies org.sonarqube and configures sonar.host.url, sonar.token, sonar.projectKey (as '<group>:<name>'), sonar.projectName, and sonar.projectVersion. Silently skips (no sonarqube task is registered) when STANO_SONAR_HOST_URL or STANO_SONAR_TOKEN are not configured. Optionally enforces quality gate with build failure via com.stano.sonar.fail-build-enabled.

Applies org.springframework.boot and wires the MSP Spring Boot BOM for dependency management. Names the bootJar after the root project and registers copyOtelJavaagent to copy the OpenTelemetry Java agent into build/libs at assemble time. Adds spring-boot-devtools (developmentOnly), micrometer-registry-prometheus (runtimeOnly), msp-spring-boot-application (implementation), and msp-spring-test-starter (testImplementation). Rewrites application.yml at processResources time with build metadata (context name, version, CI environment). When com.stano.docker is also applied, auto-configures the Docker image name, build args, and wires bootWar output as the Docker build context.

Jeff Stano is not a member of any organizations.