NGSS Maven Tiles Catalog

Deprecation and Retirement
  • NGSS Maven Tiles 1.x is deprecated as of 8/21/2025 and will no longer be maintained after that point.

  • java-service-base is deprecated as of 8/19/2025, so therefore the 1.x tiles that include it as the default base image (docker-maven-plugin-tile and jib-maven-plugin-tile) will likewise be deprecated.

  • After 6 months of being deprecated, these components will be officially retired from support.

Recommended actions for container tiles (docker-maven-plugin-tile and jib-maven-plugin-tile)

We recommend updating to the new "baseless" tiles introduced in version 1.9.0 - docker-maven-plugin-baseless-tile and jib-maven-plugin-baseless-tile, which do not rely on java-service-base and instead allow you to specify the base image directly in the project pom.xml.

This alleviates a common complaint with maintaining the ngss-maven-tiles version, since it was not readily apparent which version of Tiles corresponded to which version of the standard MAP base/ image, leading to confusion and having to dig unnecessarily for this info.

Recommended actions for all other tiles

Continue to use the most recent releases of 1.x and, if your project requires further customization of Maven configs that are included with these tiles, override applicable configuration(s) in your project’s pom.xml build/plugins field.

This page provides a comprehensive catalog of all available NGSS Maven Tiles organized by category.

Foundation Tiles

base-service-tile

Establishes core service properties, Docker repository configuration, and build conventions inherited by container and deployment tiles.

parse-version-tile

Parses Maven project version into semantic components (major, minor, patch) for use in container image tagging and versioning strategies.

spring-properties-tile

Reads Spring Boot application.properties files and makes configuration values available as Maven properties for use by other tiles.

Testing and Coverage Tiles

jacoco-aggregate-tests-tile

Combines unit and integration test coverage into complete aggregate reports with full lifecycle management and SonarQube integration support.

Container Build Tiles

docker-maven-plugin-tile

Complete Docker build solution using fabric8 plugin with predefined base image (ckm/java-service-base:4.3.5), automatic JAR assembly, and multi-environment support.

jib-maven-plugin-tile

Efficient container builds using Google Jib without Docker daemon, featuring optimized layer caching and better Maven integration for Java microservices.

spring-mcp-tile

Custom Jib configuration for building Spring AI-based MCP server applications.

buildpacks-java-tile

Cloud Native Buildpacks integration for Spring Boot with multi-architecture support (AMD64/ARM64), automatic dependency layer optimization, and JaCoCo agent binding for test coverage.

Code Generation and Documentation Tiles

filegen-tile

Configures ngss-filegen-maven-plugin for project file generation. The generate-all-files profile runs copier-init (DevOps/Backstage templates), init-vv-yaml, and generate-dibr-readme.

Filegen 6.x and Copier Requirement
Starting with ngss-maven-tiles 2.10.0, the default filegen version is 6.x which uses Copier for DevOps and Backstage template generation. Copier must be installed before running Copier-based goals. See the Filegen 6.0 Migration Guide for details.
# Install Copier (required for filegen 6.x copier goals)
pipx install copier

# Or see the Copier Installation Guide for Docker and other options

Deprecated Goals

The following legacy goals are deprecated and replaced by Copier-based templates:

Deprecated Goal Replacement Notes

generate-skaffold

copier-init -Dcopier.template=devops

Use ngss-devops-template

generate-kustomize-files

generate-jenkinsfile

init-backstage-files

copier-init -Dcopier.template=backstage

Use ngss-backstage-template

Current Goals

Goal Description

copier-init

Initialize Copier templates (devops, backstage)

copier-update

Update existing Copier templates with 3-way merge

jenkins-yaml

Generate jenkins.yaml for Jenkins pipeline

init-vv-yaml

Initialize/update vv.yaml for Verification & Validation

generate-dibr-readme

Generate dibr.md (Deployment, Installation, Backout, Rollback)

generate-flyway-scripts

Generate Flyway database migration scripts

dibr-readme-generator-tile

Generates the DIBR (Deployment, Installation, Backout, Rollback) guide for deployment processes with automated deployment instructions.

fly_way-generator-tile

Automates Flyway database migration script generation and configuration for database schema version management.

backstage-tile (deprecated)

Copies project documentation files to the Backstage docs/ directory for TechDocs integration. Uses filegen goals copy-backstage-readme, copy-backstage-changelog, and copy-openapi-json.

This tile is deprecated. Going forward, for generating the initial catalog-info.yaml and Backstage structure, use copier-init -Dcopier.template=backstage from the filegen-tile instead, and for updating Backstage files, use copier-update with the Backstage template (or include the backstage-copier-update-tile in your pom.xml tiles config for automatic update per build).

backstage-copier-update-tile

Runs copier-update for the Backstage template during the generate-sources phase with --defaults (non-interactive mode). This tile is intended for local builds to automatically update Backstage documentation files without prompting.

Configuration:

The tile runs filegen:copier-update with:

  • template=backstage - Updates only the Backstage template

  • defaults=true - Uses default values without prompting (non-interactive)

  • phase=generate-sources - Runs early in the build lifecycle

Example usage:

<tiles>
    <tile>gov.va.mobile.tools.maven:backstage-copier-update-tile:${ngss-maven-tiles.version}</tile>
</tiles>
Requires Copier to be installed and the .copier-answers/backstage.yaml file to exist (from a previous copier-init).

vv-automation-tile

Generates the vv.yaml file for the validation and verification process.

DevOps and Development Tiles

skaffold-tile

Manages Skaffold lifecycle for Kubernetes development with hot reloading, integration testing orchestration, JaCoCo coverage collection, and Spring Boot buildpacks integration.