{"id":23244677,"url":"https://github.com/bytemechanics/copysource-maven-plugin","last_synced_at":"2026-05-01T14:31:52.414Z","repository":{"id":90609171,"uuid":"121168484","full_name":"bytemechanics/copysource-maven-plugin","owner":"bytemechanics","description":"Maven plugin to copy certain java sources into generated sources in order to reduce undesired dependencies","archived":false,"fork":false,"pushed_at":"2023-08-15T17:45:38.000Z","size":241,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T00:16:37.618Z","etag":null,"topics":["copy","java","maven","plugin","repackage"],"latest_commit_sha":null,"homepage":"https://copysource-maven-plugin.bytemechanics.org","language":"Java","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/bytemechanics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2018-02-11T21:22:59.000Z","updated_at":"2022-08-09T08:26:51.000Z","dependencies_parsed_at":"2025-02-12T17:00:43.841Z","dependency_job_id":null,"html_url":"https://github.com/bytemechanics/copysource-maven-plugin","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/bytemechanics/copysource-maven-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytemechanics%2Fcopysource-maven-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytemechanics%2Fcopysource-maven-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytemechanics%2Fcopysource-maven-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytemechanics%2Fcopysource-maven-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytemechanics","download_url":"https://codeload.github.com/bytemechanics/copysource-maven-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytemechanics%2Fcopysource-maven-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32501399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["copy","java","maven","plugin","repackage"],"created_at":"2024-12-19T07:10:21.642Z","updated_at":"2026-05-01T14:31:52.386Z","avatar_url":"https://github.com/bytemechanics.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copy Sources maven plugin\n[![Latest version](https://maven-badges.herokuapp.com/maven-central/org.bytemechanics.maven/copysource-maven-plugin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.bytemechanics.maven/copysource-maven-plugin/badge.svg)\n[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=org.bytemechanics.maven%3Acopysource-maven-plugin\u0026metric=alert_status)](https://sonarcloud.io/dashboard/index/org.bytemechanics.maven%3Acopysource-maven-plugin)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=org.bytemechanics.maven%3Acopysource-maven-plugin\u0026metric=coverage)](https://sonarcloud.io/dashboard/index/org.bytemechanics.maven%3Acopysource-maven-plugin)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nMaven pluguin to copy and repackage sources to reduce library dependencies\n\n_**IMPORTANT NOTE: We strongly recommends to use this plugin only for libraries, for final projects if you want to build a uber-jar maven already has it's shade plugin that works perfectly**_\n\n## Motivation\nTo keep the dependency hell away from your projects its important to reduce at minimum the dependencies of each library. But at te same time this can break the code reutilization principle, to avoid this flag\nthe solution comes by copying the source code and repackaging in order to avoid collisions. But this is only necessary when you need ONLY some specific classes, if you need the full library then you should add\nit as dependency.\n\n## Goals\nAvailable goals:\n* copy-classes: Copy classes to generated-sources\n* copy-test-classes: Copy classes to generated-test-sources\n\n## Quick start\n_**IMPORTANT NOTE: We strongly recommends to use this plugin only for libraries, for final projects if you want to build a uber-jar maven already has it's shade plugin that works perfectly**_\n1. Add the pluguin to your pom\n   ```xml\n   (...)\n      \u003cbuild\u003e\n         \u003cplugins\u003e\n            (...)\n            \u003cplugin\u003e\n               \u003cgroupId\u003eorg.bytemechanics.maven\u003c/groupId\u003e\n               \u003cartifactId\u003ecopysource-maven-plugin\u003c/artifactId\u003e\n               \u003cversion\u003eX.X.X\u003c/version\u003e\n           \u003c/plugin\u003e\n           (...)\n        \u003c/plugins\u003e\n   \u003c/build\u003e\n   (...)\n   ```\n2. Define the execution goal \"copy-classes\" (the phase it's not necessary, by default uses \"generate-sources\")\n   ```xml\n   (...)\n   \u003cbuild\u003e\n      \u003cplugins\u003e\n         (...)\n         \u003cplugin\u003e\n            \u003cgroupId\u003eorg.bytemechanics.maven\u003c/groupId\u003e\n            \u003cartifactId\u003ecopysource-maven-plugin\u003c/artifactId\u003e\n            \u003cversion\u003eX.X.X\u003c/version\u003e\n            \u003cexecutions\u003e\n               \u003cexecution\u003e\n                  \u003cgoals\u003e\n                     \u003cgoal\u003ecopy-classes\u003c/goal\u003e\n                  \u003c/goals\u003e\n               \u003c/execution\u003e\n            \u003c/executions\u003e\n         \u003c/plugin\u003e\t\t\n         (...)\n       \u003c/plugins\u003e\n   \u003c/build\u003e\t\n   (...)\n   ```\n3. Configure it with the copies that you want to do:\n   ```xml\n   (...)\n   \u003cbuild\u003e\n      \u003cplugins\u003e\n         (...)\n         \u003cplugin\u003e\n            \u003cgroupId\u003eorg.bytemechanics.maven\u003c/groupId\u003e\n            \u003cartifactId\u003ecopysource-maven-plugin\u003c/artifactId\u003e\n            \u003cversion\u003eX.X.X\u003c/version\u003e\n            \u003cexecutions\u003e\n               \u003cexecution\u003e\n                  \u003cgoals\u003e\n                     \u003cgoal\u003ecopy-classes\u003c/goal\u003e\n                  \u003c/goals\u003e\n                  \u003cconfiguration\u003e\n                     \u003ccopies\u003e\n                        \u003ccopy\u003e\n                           \u003cartifact\u003e[source-groupId]:[source-artifactId]:[source-version]\u003c/artifact\u003e\n                           \u003cclasses\u003e\n                              \u003cclass\u003e[cannonical-name-of-origin-source. Example:org.bytemechanics.commons.functional.LambdaUnchecker]\u003c/class\u003e\n                              (...)\n                           \u003c/classes\u003e\n                           \u003cfromPackage\u003e[package-segment-to-replace. Example: org.bytemechanics.commons]\u003c/fromPackage\u003e\n                           \u003ctoPackage\u003e[package-segment-to-replace. Example: org.bytemechanics.standalone.ignite.internal.commons]\u003c/toPackage\u003e\n                        \u003c/copy\u003e\n                     \u003c/copies\u003e\n                  \u003c/configuration\u003e\n               \u003c/execution\u003e\n            \u003c/executions\u003e\n         \u003c/plugin\u003e\t\t\n         (...)\n       \u003c/plugins\u003e\n   \u003c/build\u003e\t\n   (...)\n   ```\n   \n  (Please read our [Javadoc](https://copysource-maven-plugin/javadoc/index.html) for further information)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytemechanics%2Fcopysource-maven-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytemechanics%2Fcopysource-maven-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytemechanics%2Fcopysource-maven-plugin/lists"}