{"id":13450909,"url":"https://github.com/salesforce/bazel-maven-proxy","last_synced_at":"2025-04-15T23:31:27.301Z","repository":{"id":43807907,"uuid":"185188267","full_name":"salesforce/bazel-maven-proxy","owner":"salesforce","description":"A local (read-only) proxy for Bazel to access Maven resources behind a secure repository or from the local Maven repository","archived":false,"fork":false,"pushed_at":"2023-04-18T22:23:26.000Z","size":108,"stargazers_count":24,"open_issues_count":2,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-09T23:04:42.062Z","etag":null,"topics":["bazel","bazel-deps","bazel-rules","maven"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salesforce.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2019-05-06T12:01:54.000Z","updated_at":"2024-10-28T03:37:07.000Z","dependencies_parsed_at":"2023-09-24T16:57:18.347Z","dependency_job_id":null,"html_url":"https://github.com/salesforce/bazel-maven-proxy","commit_stats":{"total_commits":55,"total_committers":6,"mean_commits":9.166666666666666,"dds":0.1636363636363637,"last_synced_commit":"fc423f0fbf46b6f25bcbabdc68dc3940e44d0131"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforce%2Fbazel-maven-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforce%2Fbazel-maven-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforce%2Fbazel-maven-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforce%2Fbazel-maven-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salesforce","download_url":"https://codeload.github.com/salesforce/bazel-maven-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248943434,"owners_count":21186958,"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":["bazel","bazel-deps","bazel-rules","maven"],"created_at":"2024-07-31T07:00:40.093Z","updated_at":"2025-04-15T23:31:26.296Z","avatar_url":"https://github.com/salesforce.png","language":"Java","readme":"# Bazel Maven Proxy\nA local (read-only) proxy for Bazel to access Maven resources behind a secure repository or from the local Maven repo\n\n## Features\n* Provides password-less access to Maven repositories requiring authentication via `https://127.0.0.1:8499/maven/\u003crepository-id\u003e/...` (the `repository-id` is used from `~/.m2/settings.xml`)\n* Reads Maven authentication information from `~/.m2/settings.xml`\n* Delivers artifacts from local Maven repository (`~/.m2/repository`) when available\n* Secure by default\n    * Only listens locally on `127.0.0.1` (no external access possible)\n    * Encrypted access with self-signed certificate via `https://localhost:8499/`\n* Unsecure access must be explicitly enable via command line parameter\n* Supports HTTP/2 access and can talk HTTP/2 or HTTP/1.1 to back-end Maven repositories\n\n## Getting Started\n\n* Build: `bazel build //:maven_proxy`\n* Run: `bazel run //:maven_proxy -- --help`  (on Linux/macOS)\n\n### Different JDK\n\nIn case you need to use a different JDK you can create a `.bazelrc-local` file.\nPlease have a look at `.bazelrc` for further instructions.\n\n## Command Line Arguments\n\n```\nUsage: bazel-maven-proxy [--local-maven-repository=PATH]\n                         [--unsecure-port=\u003cunsecurePort\u003e]\n                         [-c=PROXY-CONFIG-YAML] [-p=\u003cport\u003e]\n                         [-s=MAVEN-SETTINGS-XML]\nStarts the Bazel Maven Proxy\n  -c, --config-file=PROXY-CONFIG-YAML\n                      proxy configuration file with (additional) repositories to\n                        proxy, i.e. path to proxy-config.yaml\n  -h, --help          Show this help message and exit.\n      --host=\u003chost\u003e   host name to listen on (default is 127.0.0.1, i.e. only\n                        local connections allowed; use 0.0.0.0 to listen on all\n                        interfaces)\n      --local-maven-repository=PATH\n                      path to Maven's local repository (default: ~/.\n                        m2/repository/)\n  -p, --port=\u003cport\u003e   port to listen on (HTTP/2 and HTTP 1.1 with self-sign\n                        'localhost' certificate)\n  -s, --maven-settings=MAVEN-SETTINGS-XML\n                      path to Maven's settings.xml to read repositories and\n                        authentication information (default is ~/.\n                        m2/settings.xml)\n      --unsecure-port=\u003cunsecurePort\u003e\n                      non-secure (plain HTTP) port to listen on (default is none, set to \u003e0 to\n                        enable)\n  -V, --version       Print version information and exit.\n```\n\n## How to Use\n\nPlease ensure that your `~/.m2/settings.xml` has an entry for your repository like this:\n```\n  ...\n  \u003cservers\u003e\n    \u003cserver\u003e\n      \u003cid\u003emynexus\u003c/id\u003e\n      \u003cusername\u003e...\u003c/username\u003e\n      \u003cpassword\u003e...\u003c/password\u003e\n    \u003c/server\u003e\n    \u003cserver\u003e\n      \u003cid\u003ecentral\u003c/id\u003e\n      \u003cusername\u003e...\u003c/username\u003e\n      \u003cpassword\u003e...\u003c/password\u003e\n    \u003c/server\u003e\n  \u003c/servers\u003e\n  ...\n\n  \u003cprofiles\u003e\n    \u003cprofile\u003e\n      \u003cid\u003emynexus\u003c/id\u003e\n      \u003cactivation\u003e\n        \u003cactiveByDefault\u003etrue\u003c/activeByDefault\u003e\n      \u003c/activation\u003e\n      \u003crepositories\u003e\n        \u003crepository\u003e\n          \u003cid\u003ecentral\u003c/id\u003e\n          \u003curl\u003ehttps://my-central-mirror.internal.network.com/..\u003c/url\u003e\n        \u003c/repository\u003e\n        \u003crepository\u003e\n          \u003cid\u003emynexus\u003c/id\u003e\n          \u003curl\u003ehttps://my-nexus-repo.internal.network.com/..\u003c/url\u003e\n        \u003c/repository\u003e\n      \u003c/repositories\u003e\n      ...\n    \u003c/profile\u003e\n  \u003c/profiles\u003e\n```\n\nThen in Bazel (or anywhere else) you can refer to these as `http(s)://localhost:\u003cport\u003e/maven/mynexus/..` and `http(s)://localhost:\u003cport\u003e/maven/central/..`.\n\nAlternatively to (or in addition to) `~/.m2/settings.xml` one can also provide a YAML configuration file.\nSee an example [here](server/src/test/resources/sample-proxy-config.yaml) for syntax.","funding_links":[],"categories":["Tooling"],"sub_categories":["\u003ca name=\"misc-tooling\"\u003e\u003c/a\u003eMisc"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalesforce%2Fbazel-maven-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalesforce%2Fbazel-maven-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalesforce%2Fbazel-maven-proxy/lists"}