{"id":234,"date":"2026-10-13T00:30:52","date_gmt":"2026-10-13T00:30:52","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2010\/04\/14\/issuemanagement-in-maven\/"},"modified":"2026-10-13T00:30:52","modified_gmt":"2026-10-13T00:30:52","slug":"issuemanagement-in-maven","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/issuemanagement-in-maven\/","title":{"rendered":"Maven issueManagement: Configure Issue Tracker Metadata Correctly in pom.xml"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Originally published on 2010-04-14; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maven\u2019s <code>issueManagement<\/code> section publishes where bugs and feature requests for a project should be tracked. For maintainers and consumers, this keeps tracker details in project metadata instead of scattered across docs or team chat.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.devopsschool.com\/blog\/issuemanagement-in-maven\/\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2010\/04\/issuemanagement-in-maven.png\" alt=\"issueManagement in Maven\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What issueManagement is for<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>issueManagement<\/code> block is part of Maven project metadata in <code>pom.xml<\/code>. It tells users and tools which issue tracker to use and where to access it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">issueManagement elements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The original post listed two core elements. Those remain the practical fields teams set.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Element<\/th><th>Description<\/th><th>Example value<\/th><\/tr><\/thead><tbody><tr><td>system<\/td><td>Name of the issue tracker used by the project.<\/td><td>Jira<\/td><\/tr><tr><td>url<\/td><td>Direct URL to the project\u2019s issue tracker.<\/td><td>https:\/\/jira.example.com\/projects\/APP<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">POM configuration examples<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Minimal snippet<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">issueManagement<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">system<\/span>&gt;<\/span>GitHub Issues<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">system<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">url<\/span>&gt;<\/span>https:\/\/github.com\/example-org\/example-repo\/issues<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">url<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">issueManagement<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Inside a project POM<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">project<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">modelVersion<\/span>&gt;<\/span>4.0.0<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">modelVersion<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>com.example<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">groupId<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>demo-app<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">artifactId<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">version<\/span>&gt;<\/span>1.0.0<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">version<\/span>&gt;<\/span>\n\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">issueManagement<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">system<\/span>&gt;<\/span>Jira<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">system<\/span>&gt;<\/span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">url<\/span>&gt;<\/span>https:\/\/jira.example.com\/projects\/DEMO<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">url<\/span>&gt;<\/span>\n  <span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">issueManagement<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">project<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">How metadata flows to users and tooling<\/h2>\n\n\n\n<pre class=\"mermaid\">\nflowchart LR\n    A[Edit pom metadata] --> B[Commit and build]\n    B --> C[Generate effective pom]\n    C --> D[Publish artifact or site]\n    D --> E[Users discover tracker link]\n    E --> F[Issues and requests go to correct system]\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This workflow is simple but high impact: clean metadata reduces misrouted bug reports and improves project discoverability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common system values and URL patterns<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>system value<\/th><th>Typical URL pattern<\/th><th>When teams use it<\/th><\/tr><\/thead><tbody><tr><td>Jira<\/td><td>https:\/\/jira.example.com\/projects\/KEY<\/td><td>Enterprise project tracking<\/td><\/tr><tr><td>Bugzilla<\/td><td>https:\/\/bugzilla.example.com\/<\/td><td>Legacy or established bug workflows<\/td><\/tr><tr><td>GitHub Issues<\/td><td>https:\/\/github.com\/org\/repo\/issues<\/td><td>GitHub-hosted repositories<\/td><\/tr><tr><td>GitLab Issues<\/td><td>https:\/\/gitlab.com\/group\/project\/-\/issues<\/td><td>GitLab-hosted repositories<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Validate what Maven resolves<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use the effective POM to verify the final metadata seen by Maven (especially if parent POMs are involved).<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml language-bash\">mvn -q help:effective-pom | sed -n '\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">issueManagement<\/span>&gt;<\/span>\/,\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">\\<\/span>\/<span class=\"hljs-attr\">issueManagement<\/span>&gt;<\/span>\/p'<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Original references<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Original article permalink: <a href=\"https:\/\/www.devopsschool.com\/blog\/issuemanagement-in-maven\/\">https:\/\/www.devopsschool.com\/blog\/issuemanagement-in-maven\/<\/a><\/li><li>Video URL visible in original page output: <a href=\"https:\/\/www.youtube.com\/watch?v=ZCfrNvu6nMc\">https:\/\/www.youtube.com\/watch?v=ZCfrNvu6nMc<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Common pitfalls<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Pointing to a generic tracker homepage instead of the project-specific issue page.<\/li><li>Using an outdated URL after repository migration.<\/li><li>Leaving metadata inconsistent across multi-repo or multi-module projects.<\/li><li>Not checking the effective POM when parent metadata may override child values.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn what Maven\u2019s issueManagement section does, how to configure it in pom.xml, and how to validate that consumers can find your issue tracker metadata.<\/p>\n","protected":false},"author":1,"featured_media":4266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[3644,302,3856,3645,244,161,3857,3858,3854,3859],"class_list":["post-234","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorised","tag-bug-tracking-system","tag-issue","tag-issue-management","tag-issue-tracking-system","tag-management","tag-maven","tag-maven-issuemanagement","tag-maven-project","tag-project-management","tag-scm-plugin"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/234","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=234"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions"}],"predecessor-version":[{"id":79064,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/234\/revisions\/79064"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/4266"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=234"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=234"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=234"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}