{"id":16365974,"url":"https://github.com/marcwrobel/parent","last_synced_at":"2026-02-25T16:03:36.575Z","repository":{"id":41282334,"uuid":"198102817","full_name":"marcwrobel/parent","owner":"marcwrobel","description":"My Maven projects parent POM","archived":false,"fork":false,"pushed_at":"2025-11-21T14:05:35.000Z","size":319,"stargazers_count":1,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-19T20:43:35.619Z","etag":null,"topics":["maven","parent","pom"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcwrobel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-21T20:35:07.000Z","updated_at":"2025-08-23T21:49:53.000Z","dependencies_parsed_at":"2024-03-20T22:24:25.608Z","dependency_job_id":"9660a32e-d690-40c1-8af3-9202535eeae6","html_url":"https://github.com/marcwrobel/parent","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/marcwrobel/parent","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcwrobel%2Fparent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcwrobel%2Fparent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcwrobel%2Fparent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcwrobel%2Fparent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcwrobel","download_url":"https://codeload.github.com/marcwrobel/parent/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcwrobel%2Fparent/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29829410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T15:41:19.027Z","status":"ssl_error","status_checked_at":"2026-02-25T15:40:47.150Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["maven","parent","pom"],"created_at":"2024-10-11T02:44:56.010Z","updated_at":"2026-02-25T16:03:36.557Z","avatar_url":"https://github.com/marcwrobel.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build](https://github.com/marcwrobel/parent/workflows/build/badge.svg)](https://github.com/marcwrobel/parent/actions)\n[![Supported JVM Versions](https://img.shields.io/badge/JVM-8--17-brightgreen.svg?logo=openjdk)](https://github.com/marcwrobel/parent/)\n[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=fr.marcwrobel:parent\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=fr.marcwrobel:parent)\n[![SonarCloud Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=fr.marcwrobel:parent\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=fr.marcwrobel:parent)\n[![Maven Central](https://img.shields.io/maven-central/v/fr.marcwrobel/parent.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/fr.marcwrobel/parent)\n\nWriting and maintaining Maven projects\n[POM](https://maven.apache.org/guides/introduction/introduction-to-the-pom.html) is\nboring. This parent POM is simplifying those tasks in the context of my open source\nprojects by:\n\n- defining common project and developer\n  [properties](https://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html)\n  that can be easily overridden in a single place;\n- defining a convenient set of configuration default (if you use\n  [GitHub](https://github.com), [GitHub Actions](https://github.com/features/actions),\n  [Sonatype OSSRH](https://oss.sonatype.org), [Docker Hub](https://hub.docker.com)).\n- providing dependency and plugin management\n\n## How to use it?\n\nJust inherit from it in your project :\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\"\n\t\t xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\t\t xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\"\u003e\n\t\u003cmodelVersion\u003e4.0.0\u003c/modelVersion\u003e\n\n\t\u003cparent\u003e\n\t\t\u003cgroupId\u003efr.marcwrobel\u003c/groupId\u003e\n\t\t\u003cartifactId\u003eparent\u003c/artifactId\u003e\n\t\t\u003cversion\u003e3.2.0\u003c/version\u003e\n\t\t\u003crelativePath/\u003e\n\t\u003c/parent\u003e\n\n\t\u003cgroupId\u003egroupId\u003c/groupId\u003e\n\t\u003cartifactId\u003eartifactId\u003c/artifactId\u003e\n\t\u003cversion\u003ex.y.z-SNAPSHOT\u003c/version\u003e\n\n\t\u003cname\u003ename\u003c/name\u003e\n\t\u003cdescription\u003edescription\u003c/description\u003e\n\t\u003curl\u003ehttps://url.com\u003c/url\u003e\n\t\u003cinceptionYear\u003e2020\u003c/inceptionYear\u003e\n\t...\n\t\u003c!-- only override if needed --\u003e\n\t\u003cproperties\u003e\n\t\t\u003cthis.java.version\u003e1.8\u003c/this.java.version\u003e\n\t\t\u003cthis.maven.version\u003e3.8.5\u003c/this.maven.version\u003e\n\n\t\t\u003cdev.name\u003eMarc Wrobel\u003c/dev.name\u003e\n\t\t\u003cdev.username\u003emarcwrobel\u003c/dev.username\u003e\n\t\t\u003cdev.email\u003emarc.wrobel@gmail.com\u003c/dev.email\u003e\n\t\t\u003cdev.url\u003ehttp://www.marcwrobel.fr/\u003c/dev.url\u003e\n\t\t...\n\t\u003c/properties\u003e\n\u003c/project\u003e\n```\n\nAll inherited information can be overridden, especially properties (take a look at this\n[parent POM](pom.xml) for an exhaustive list). Remember you can display the effective POM\nusing [`maven-help-plugin`](https://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html)\nin your project:\n\n```bash\nmvn help:effective-pom\n```\n\nYou must also declare a [`maven-versions-rules.xml`](/maven-versions-rules.xml) file at the root of\nyour project.\n\n## What's included?\n\n- default Maven configuration for `organization`, `developers`, `scm`, `issueManagement`,\n  `ciManagement`, `distributionManagement` and `defaultGoal`,\n- dependency management for dozens of libraries\n  ([Apache Commons](https://commons.apache.org), [java extensions](https://www.jcp.org/),\n  [Groovy](http://www.groovy-lang.org/), [Spring](https://spring.io/),\n  [Hibernate](https://hibernate.org/) to name a few),\n- plugin management for\n  [cyclonedx-maven-plugin](https://github.com/CycloneDX/cyclonedx-maven-plugin)\n  (the configuration should work in most situations),\n- plugin management for\n  [flatten-maven-plugin](https://www.mojohaus.org/flatten-maven-plugin/)\n  ([CI-friendly configuration](http://maven.apache.org/maven-ci-friendly.html)),\n- plugin management for\n  [git-commit-id-plugin](https://github.com/git-commit-id/maven-git-commit-id-plugin)\n  (provided by `spring-boot-starter-parent` but non-verbose),\n- plugin management for [jacoco-maven-plugin](https://www.jacoco.org/jacoco/)\n  (activation),\n- plugin management for\n  [jib-maven-plugin](https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin)\n  (default `from` and `to`),\n- plugin management for\n  [kotlin-maven-plugin](https://kotlinlang.org/docs/reference/using-maven.html)\n  (provided by `spring-boot-starter-parent`),\n- plugin management for\n  [maven-compiler-plugin](https://maven.apache.org/plugins/maven-compiler-plugin/)\n  (provided by `spring-boot-starter-parent`),\n- plugin management for\n  [maven-enforcer-plugin](https://maven.apache.org/enforcer/maven-enforcer-plugin/)\n  (activation and configuration rules for Java and Maven versions),\n- plugin management for\n  [maven-failsafe-plugin](http://maven.apache.org/surefire/maven-failsafe-plugin/)\n  (provided by `spring-boot-starter-parent`),\n- plugin management for\n  [maven-release-plugin](https://maven.apache.org/maven-release/maven-release-plugin/)\n  (change `tagNameFormat`).\n- plugin management for\n  [spotless-maven-plugin](https://github.com/diffplug/spotless/blob/main/plugin-maven/README.md)\n  (binding to the verify phase),\n- plugin management and project configuration for\n  [sonar-maven-plugin](https://sonarsource.github.io/sonar-scanner-maven/),\n- plugin management and project configuration for\n  [versions-maven-plugin](https://www.mojohaus.org/versions-maven-plugin/),\n- plugin management for\n  [spring-boot-maven-plugin](https://docs.spring.io/spring-boot/docs/current/maven-plugin/index.html)\n  (provided by `spring-boot-starter-parent`).\n- a `release` profile, activated automatically during release with `maven-release-plugin`,\n  which triggers :\n    - sources attachment with\n      [maven-source-plugin](https://maven.apache.org/plugins/maven-source-plugin/),\n    - javadoc attachment with\n      [[maven-javadoc-plugin](http://maven.apache.org/plugins/maven-javadoc-plugin/),\n    - a PGP signature with\n      [maven-gpg-plugin](https://maven.apache.org/plugins/maven-gpg-plugin/).\n- an `analyze` profile, that must be activated manually, which triggers the `jacoco` agent\n  during unit or integration tests in order to calculate code coverage for SonarQube.\n\nThe `maven-enforcer-plugin` is the only plugin activated by default.\n\nTake a look at the [POM](/pom.xml) for more information.\n\n## Why `spring-boot-starter-parent`?\n\nThis POM is inheriting from\n[`spring-boot-starter-parent`](https://spring.io/projects/spring-boot) in order to:\n\n- take advantage of the Spring Boot team's work on dependencies (with\n  `spring-boot-dependencies`);\n- benefit from some good plugin management defaults.\n\nBecause this POM is relying so much on `spring-boot-starter-parent` its major and minor\nversions are also following those of Spring Boot.\n\n## Contribute\n\nTake a look at the [contribution guide](CONTRIBUTING.md).\n\n## Need help ?\n\nStart a [discussion](https://github.com/marcwrobel/parent/discussions),\nraise an [issue](https://github.com/marcwrobel/parent/issues?sort=created\u0026direction=desc\u0026state=open)\nor contribute with [a pull-request](https://github.com/marcwrobel/parent/pulls) (please take a look at the\n[contribution guide](CONTRIBUTING.md) before).\n\nAnd for the things that must be kept private (**only** !), such as [security issues](/SECURITY.md), email me at\n[marc.wrobel@gmail.com](mailto:marc.wrobel@gmail.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcwrobel%2Fparent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcwrobel%2Fparent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcwrobel%2Fparent/lists"}