{"id":24649106,"url":"https://github.com/ow2-proactive/parent-bom","last_synced_at":"2025-06-13T22:33:24.435Z","repository":{"id":26410004,"uuid":"93383031","full_name":"ow2-proactive/parent-bom","owner":"ow2-proactive","description":"parent bom project managing dependencies version","archived":false,"fork":false,"pushed_at":"2024-10-14T07:58:44.000Z","size":99,"stargazers_count":0,"open_issues_count":12,"forks_count":10,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-01-25T17:15:36.860Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/ow2-proactive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-06-05T08:37:00.000Z","updated_at":"2024-10-06T15:42:29.000Z","dependencies_parsed_at":"2023-11-22T13:30:55.081Z","dependency_job_id":"aa0ca060-cbf4-4aec-980b-499bc513a9fc","html_url":"https://github.com/ow2-proactive/parent-bom","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fparent-bom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fparent-bom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fparent-bom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fparent-bom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ow2-proactive","download_url":"https://codeload.github.com/ow2-proactive/parent-bom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244675507,"owners_count":20491824,"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":[],"created_at":"2025-01-25T17:15:46.755Z","updated_at":"2025-03-20T18:47:55.155Z","avatar_url":"https://github.com/ow2-proactive.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# parent-bom\nparent bom project managing dependencies version\n\n# How to use the plugin in other micro-service projects\n## dependency management plugin definition in the micro-service project's build.gradle file\n\n1. Declare the dependency management plugin in the buildscript block as following\n\n```\nbuildscript {\n    repositories {\n        mavenCentral()\n    }\n\n    dependencies {\n        classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.3.RELEASE'\n        classpath \"com.diffplug.gradle.spotless:spotless:2.4.0\"\n        classpath \"org.ow2.proactive:coding-rules:1.0.0\"\n        ... ...\n        classpath \"io.spring.gradle:dependency-management-plugin:0.3.0.RELEASE\"\n    }\n}\n```\n\n2. Apply the plugin\n```\napply plugin: \"io.spring.dependency-management\"\n```\n\n3. Import this parent-bom pom file into your micro-service project\n```\ndependencyManagement {\n    imports {\n        mavenBom \"org.ow2.proactive:parent-bom:${version}\"\n    }\n}\n```\n\n4. Remove the versions from the dependencies block, except the proactive dependencies\n\nFor example,\n\n```\ndependencies {\n    providedCompile \"org.ow2.proactive_grid_cloud_portal:rest-client:$version\"\n    providedCompile \"org.ow2.proactive:common-client:$version\"\n\n    compile 'commons-fileupload:commons-fileupload'\n\n    compile \"org.apache.logging.log4j:log4j-web\"\n\n    compile 'org.springframework.boot:spring-boot-starter-data-jpa'\n\n    compile 'org.hibernate:hibernate-entitymanager'\n    compile 'org.hibernate:hibernate-core'\n    \n    ...\n    ...\n}\n```\n\n**Note: the exclusions must be done in parent-bom pom file, not in the dependencies block in the build.gradle file**\n\n## How to add new dependencies version in parent-bom project\nAll dependencies version must be managed in this parent-bom project. When a new dependency version is needed, the parent-bom's pom.xml file needs to be updated to add this new dependency's version.\n\n1. Verify the same dependency does not exist already by checking in the pom.xml file the ```properties``` block, which all dependencies versions are declared there.\n```\n\u003cproperties\u003e\n        \u003cspringboot.version\u003e1.3.3.RELEASE\u003c/springboot.version\u003e\n        \u003ccommonsfileupload.version\u003e1.3.1\u003c/commonsfileupload.version\u003e\n        \u003clog4jweb.version\u003e2.7\u003c/log4jweb.version\u003e\n        \u003cjunit.version\u003e4.11\u003c/junit.version\u003e\n        ...\n        ...\n\u003c/properties\u003e        \n```\n\n2. Create a new property for the new dependency's version in the ```properties``` block\n\n3. Add a new ```dependency``` sub-block in the ```dependencyManangement``` block, like following\n\n```\n \u003cdependencyManagement\u003e\n        \u003cdependencies\u003e\n            \u003c!-- spring boot --\u003e\n            \u003cdependency\u003e\n                \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n                \u003cartifactId\u003espring-boot-starter-data-jpa\u003c/artifactId\u003e\n                \u003cversion\u003e${springboot.version}\u003c/version\u003e\n                \u003cexclusions\u003e\n                    \u003cexclusion\u003e\n                        \u003cgroupId\u003eorg.hibernate\u003c/groupId\u003e\n                        \u003cartifactId\u003ehibernate-entitymanager\u003c/artifactId\u003e\n                    \u003c/exclusion\u003e\n                    \u003cexclusion\u003e\n                        \u003cgroupId\u003eorg.springframework.boot\u003c/groupId\u003e\n                        \u003cartifactId\u003espring-boot-starter-validation\u003c/artifactId\u003e\n                    \u003c/exclusion\u003e\n                \u003c/exclusions\u003e\n            \u003c/dependency\u003e\n            ...\n            ...\n\u003c/dependencyManagement\u003e            \n```\nas you can see in the sample, the exlusions are mamaged here in the block too, so that when this dependency is imported in the micro-service's build.gradle, the exclusions are already done, do not repeat the exclusions declaration again in the build.gradle.\n\n4. Build and commit the parent-bom project, the nightly-release will generate and upload the artifact to the proactive repository, after which the new dependency can be imported into the micro-service project then.\n\n# How to test parent-bom changes locally\n\n1. Edit the version inside pom.xml. For example:\n\n\u003cversion\u003e13.1.0-SNAPSHOT\u003c/version\u003e\n\n3. run `mvn install` to install locally your changes\n\n4. build projects which use parent-bom with option -Plocal.\n\n## Common issues\n\n- The Error \"detached configuration\" means that it cannot solve the dependencies.\n\n- When parent-bom will be updated, you will have to launch the parent-bom-release jenkins job to update the version on the nexus repository.\n\n- Be sure that activeeon repository is in your buildscript repositories in build.gradle.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fparent-bom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fow2-proactive%2Fparent-bom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fparent-bom/lists"}