{"id":18148266,"url":"https://github.com/jenkinsci/bom","last_synced_at":"2026-04-10T15:22:25.585Z","repository":{"id":37271158,"uuid":"196048675","full_name":"jenkinsci/bom","owner":"jenkinsci","description":"Define plugin dependencies via BOM","archived":false,"fork":false,"pushed_at":"2024-10-29T15:05:13.000Z","size":3589,"stargazers_count":49,"open_issues_count":14,"forks_count":52,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-10-29T15:23:43.952Z","etag":null,"topics":["developer-tools","jenkins"],"latest_commit_sha":null,"homepage":"https://jenkins.io/doc/developer/plugin-development/dependency-management/#jenkins-plugin-bom","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jenkinsci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-09T16:50:20.000Z","updated_at":"2024-10-29T15:05:18.000Z","dependencies_parsed_at":"2023-09-26T00:56:33.935Z","dependency_job_id":"c4309c7e-8bf7-4cd9-9f89-221b9ea3d760","html_url":"https://github.com/jenkinsci/bom","commit_stats":null,"previous_names":[],"tags_count":223,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fbom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fbom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fbom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenkinsci%2Fbom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenkinsci","download_url":"https://codeload.github.com/jenkinsci/bom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247369952,"owners_count":20927928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["developer-tools","jenkins"],"created_at":"2024-11-01T23:07:48.642Z","updated_at":"2026-04-10T15:22:25.575Z","avatar_url":"https://github.com/jenkinsci.png","language":"Shell","readme":"# Bill of Materials for Jenkins plugins\n\nThis repository implements a [Maven BOM](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies)\nwhich can be used in a plugin POM to more easily manage dependencies on other common plugins.\nThis is important because version management is a [common annoyance](https://jenkins.io/doc/developer/plugin-development/updating-parent/#understanding-requireupperbounddeps-failures-and-fixes).\nSee [JENKINS-47498](https://issues.jenkins.io/browse/JENKINS-47498) for the background.\n\nA secondary purpose of this repository is to regularly perform plugin compatibility testing (PCT) against new or forthcoming releases of core and plugins.\n\nIf you are interested in a Bill of Materials for Jenkins core components, see [this page](https://jenkins.io/doc/developer/plugin-development/dependency-management/#jenkins-core-bom).\n\n# Usage\n\nAfter [selecting your plugin’s LTS baseline](https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/):\n\n```xml\n\u003cjenkins.baseline\u003e2.528\u003c/jenkins.baseline\u003e\n\u003cjenkins.version\u003e${jenkins.baseline}.3\u003c/jenkins.version\u003e\n```\n\njust import the [latest BOM](https://repo.jenkins-ci.org/public/io/jenkins/tools/bom) from that line:\n\n```xml\n\u003cdependencyManagement\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eio.jenkins.tools.bom\u003c/groupId\u003e\n            \u003cartifactId\u003ebom-${jenkins.baseline}.x\u003c/artifactId\u003e\n            \u003cversion\u003e…\u003c/version\u003e\n            \u003ctype\u003epom\u003c/type\u003e\n            \u003cscope\u003eimport\u003c/scope\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/dependencyManagement\u003e\n```\n\nNow you can declare dependencies on many plugins without needing to specify a version:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.jenkins-ci.plugins.workflow\u003c/groupId\u003e\n    \u003cartifactId\u003eworkflow-cps\u003c/artifactId\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\nYou can always override a version managed by the BOM if you wish,\nbut if you find the need to use a newer version,\nfirst try just updating the version in the BOM and cutting a new release of it.\n\nWhen starting to use the BOM in an existing plugin,\nyou may find that many existing dependencies do not need to be expressed at all and can be deleted,\nif they were added solely to satisfy the `RequireUpperBoundDeps` Enforcer rule or similar.\nMaven will automatically add transitive dependencies to your classpath,\nso you should only need to declare an explicit dependency on another plugin when:\n\n* You compile against it. (Use `test` scope if it is only used in tests.)\n* It is required to be present and not otherwise loaded transitively.\n  (For example, `workflow-basic-steps` and `workflow-durable-task-step` are commonly required for tests which run Pipeline builds.)\n\nThe command\n\n```sh\nmvn dependency:analyze\n```\n\ncan offer clues about unused plugin dependencies,\nthough you must evaluate each carefully since it only understands Java binary dependencies\n(what is required for compilation, more or less).\n\nA [BOM tutorial video](https://www.jenkins.io/doc/developer/tutorial-improve/use-plugin-bill-of-materials/) is available in the [Jenkins developer documentation](https://www.jenkins.io/doc/developer/tutorial-improve/).\n\n## Depending on `bom-weekly`\n\nThe `bom-weekly` line is a special artifact that follows the weekly release of Jenkins core.\nYou would only depend on it when you are actively tracking the weekly release line.\n\nSome examples of when you would use it:\n- You run tests in your plugin against the weekly version of Jenkins\n- You depend on the Jenkins core weekly line and update it regularly, ([example](https://github.com/jenkins-infra/pipeline-steps-doc-generator))\n\nYou would not use it:\n- When you are temporarily depending on the weekly line but do not plan to update it on every release\n  - This would cause dependency update build failures when a plugin is updated only on the weekly line (if you depend on it)\n\n## Depending on older versions\n\nSometimes a plugin maintainer may prefer to require an older version of Jenkins as its minimum version.\nRefer to [choosing a Jenkins version](https://www.jenkins.io/doc/developer/plugin-development/choosing-jenkins-baseline/) for more details.\n\nWhen an older Jenkins version is used, then the matching older version of the plugin bill of materials should be used.\n\n| BOM Line    | Version               | Comment                      |\n| ----------- | --------------------- | ---------------------------- |\n| bom-2.346.x | 1763.v092b_8980a_f5e  | Last LTS to support Java 8   |\n| bom-2.361.x | 2102.v854b_fec19c92   | First LTS to require Java 11 |\n| bom-2.375.x | 2198.v39c76fc308ca    |                              |\n| bom-2.387.x | 2543.vfb_1a_5fb_9496d |                              |\n| bom-2.401.x | 2745.vc7b_fe4c876fa_  |                              |\n| bom-2.414.x | 2982.vdce2153031a_0   |                              |\n| bom-2.426.x | 3208.vb_21177d4b_cd9  |                              |\n| bom-2.440.x | 3435.v238d66a_043fb_  |                              |\n| bom-2.452.x | 3944.v1a_e4f8b_452db_ |                              |\n| bom-2.462.x | 4228.v0a_71308d905b_  | Last LTS to support Java 11  |\n| bom-2.479.x | 5054.v620b_5d2b_d5e6  | First LTS to require Java 17 |\n| bom-2.492.x | 5473.vb_9533d9e5d88   |                              |\n| bom-2.504.x | 5983.v443959746f1f    |                              |\n| bom-2.516.x | 6210.v69ea_fd8a_f010  |                              |\n\nThe latest versions of all BOM lines are available from the [Jenkins artifact repository](https://repo.jenkins-ci.org/public/io/jenkins/tools/bom).\n\n# Development\n\n[Moved to CONTRIBUTING](CONTRIBUTING.md)\n","funding_links":[],"categories":["Shell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fbom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenkinsci%2Fbom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenkinsci%2Fbom/lists"}