Maven pom.xml Stub Builder

Generate a Maven pom.xml for a Spring Boot or Java library project

Create a valid pom.xml stub with groupId, artifactId, version, an optional Spring Boot parent, dependencies (web, JPA, PostgreSQL, test) and the build plugin for standard Java projects.

What are groupId, artifactId and version?

Together they are the Maven coordinates that uniquely identify your artifact. groupId is a reverse-domain namespace like com.example, artifactId is the project name, and version is the release, often ending in -SNAPSHOT during development to mark it as a mutable pre-release.

The Maven pom.xml Stub Builder generates a valid project object model for a Spring Boot application or a plain Java library. Set your coordinates, pick a Java version and the starters you need, and the tool emits a ready-to-build pom.xml.

How it works

Every Maven build is driven by pom.xml. The three coordinates — groupId, artifactId and version — uniquely identify the artifact. For Spring Boot projects the tool inherits from spring-boot-starter-parent, which provides a dependency BOM so your starters need no explicit versions; this is why spring-boot-starter-web and spring-boot-starter-data-jpa appear without a <version> tag. A library project instead pins JUnit Jupiter and the compiler and surefire plugins directly.

The <properties> block sets java.version and maven.compiler.release so the compiler targets the right bytecode level, and the <build> section adds the appropriate plugin — spring-boot-maven-plugin for an executable Spring jar, or the standard compiler and test plugins for a library. Any special XML characters in your input are escaped to keep the document well formed.

Example

After saving the file, build with Maven:

mvn clean package          # compile, test, and package the artifact
mvn spring-boot:run        # run a Spring Boot app directly

Tips and notes

Use -SNAPSHOT versions during active development so Maven treats the build as mutable, and drop the suffix for releases. For Spring Boot, prefer jar packaging — the embedded server makes the artifact self-contained. Run mvn dependency:tree to inspect what the starters actually pull in, and mvn validate to confirm the POM is well formed before committing.