{"id":30019715,"url":"https://github.com/veupathdb/maven-packages","last_synced_at":"2026-02-26T00:39:48.822Z","repository":{"id":90411327,"uuid":"348420504","full_name":"VEuPathDB/maven-packages","owner":"VEuPathDB","description":"Maven artifact repository.","archived":false,"fork":false,"pushed_at":"2025-03-31T15:47:23.000Z","size":87484,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-09-04T05:28:42.725Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/VEuPathDB.png","metadata":{"files":{"readme":"readme.adoc","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,"publiccode":null,"codemeta":null}},"created_at":"2021-03-16T16:39:08.000Z","updated_at":"2025-03-31T15:47:28.000Z","dependencies_parsed_at":"2025-03-31T17:03:37.389Z","dependency_job_id":null,"html_url":"https://github.com/VEuPathDB/maven-packages","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VEuPathDB/maven-packages","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fmaven-packages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fmaven-packages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fmaven-packages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fmaven-packages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VEuPathDB","download_url":"https://codeload.github.com/VEuPathDB/maven-packages/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VEuPathDB%2Fmaven-packages/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29846040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T22:37:40.667Z","status":"ssl_error","status_checked_at":"2026-02-25T22:37:25.960Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-08-06T01:20:56.441Z","updated_at":"2026-02-26T00:39:48.813Z","avatar_url":"https://github.com/VEuPathDB.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"= Maven Package Repo\n:toc:\n:toclevels: 3\n\n== Setup\n\nTo pull or push artifacts from/to this repository, the `~/.gradle/gradle.properties` file must be created or edited with the following variables.\n\n.`gradle.properties`\n[source, properties]\n----\ngpr.user= \u003c1\u003e\ngpr.key= \u003c2\u003e\n----\n\u003c1\u003e Your GitHub username\n\u003c2\u003e A GitHub personal access token (see: https://docs.github.com/en/packages/learn-github-packages/about-github-packages#authenticating-to-github-packages[the GitHub documentation]) for an overview, or https://github.com/settings/tokens[click here] to generate a new personal token.  You must pick at least the \"read:packages\" scope to download artifacts, and \"write:packages\" to upload.\n\n== Pulling Packages\n\n=== Gradle\n\nTo consume libraries hosted in this repo, the following must be added to your `build.gradle.kts` file's repositories block.\n\n.`build.gradle.kts`\n[source, kotlin]\n----\n// root repositories definition\nrepositories {\n  // other repo defs such as mavenCentral()\n  maven {\n    name = \"GitHubPackages\"\n    url  = uri(\"https://maven.pkg.github.com/veupathdb/maven-packages\")\n    credentials {\n      username = project.findProperty(\"gpr.user\") as String? ?: System.getenv(\"GITHUB_USERNAME\")\n      password = project.findProperty(\"gpr.key\") as String? ?: System.getenv(\"GITHUB_TOKEN\")\n    }\n  }\n}\n----\n\nThe fallback values `GITHUB_USERNAME` and `GITHUB_TOKEN` will be used when building the project in Jenkins.\n\n=== Docker/Docker Compose\n\nBuilding Docker images that depend on packages in this repo requires passing the GitHub access token to the image build.\nThis can be done through Docker's https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg[--build-arg] argument.\n\n==== Configuring Docker\n\nTo enable passing the build-time credentials to Docker, the following https://docs.docker.com/engine/reference/builder/#arg[build args]\nmust be added to your project's `Dockerfile`.\n\nThese build args will become environment variables at build time, but will not appear in the built image.\n\n.Dockerfile\n[source, dockerfile]\n----\nFROM ...\n\nARG GITHUB_USERNAME\nARG GITHUB_TOKEN\n\n...\n----\n\n==== Building with Docker\n\n[source, shell-session]\n----\n$ docker build -t 'my-image' --build-arg=GITHUB_USERNAME=my-github-username --build-arg=GITHUB_TOKEN=my-access-token .\n----\n\n==== Building with Docker Compose\n\n[source, shell-session]\n----\n$ docker-compose build --build-arg GITHUB_USERNAME=my-github-username --build-arg GITHUB_TOKEN=my-access-token\n----\n\n== Publishing Packages\n\n=== Gradle\n\n==== Configuration\n\nApply the following changes to your `build.gradle.kts` file.\n\n. Add the `maven-publish` plugin to the plugins block.\n+\n[source, kotlin]\n----\n// root plugins closure\nplugins {\n  // other plugins\n  `maven-publish`\n}\n----\n. Configure gradle to produce a sources jar and a javadoc jar.\n+\n[source, kotlin]\n----\njava {\n  withSourcesJar()\n  withJavadocJar()\n}\n----\n. Add a `publishing` block.\n+\n[source, kotlin]\n----\npublishing {\n}\n----\n. Add the publish target repository\n+\n[source, kotlin]\n----\npublishing {\n  repositories {\n    maven {\n      name = \"GitHub\"\n      url  = uri(\"https://maven.pkg.github.com/veupathdb/maven-packages\")\n      credentials {\n        username = project.findProperty(\"gpr.user\") as String? ?: System.getenv(\"USERNAME\")\n        password = project.findProperty(\"gpr.key\") as String? ?: System.getenv(\"TOKEN\")\n      }\n    }\n  }\n}\n----\n. Add a publication for your project.\n+\n[source, kotlin]\n----\npublishing {\n  repositories {\n    ...\n  }\n  publications {\n    create\u003cMavenPublication\u003e(\"gpr\") {\n      from(components[\"java\"])\n    }\n  }\n}\n----\n. Optionally configure the generated pom following the instructions https://docs.gradle.org/current/userguide/publishing_maven.html[in the Gradle docs].  An example of a customized pom can be found in https://github.com/VEuPathDB/lib-jaxrs-container-core/blob/master/build.gradle.kts#L67[the container core lib's build file] \n\n==== Publishing\n\nOnce your `build.gradle.kts` file has been updated with the publishing configuration, publishing artifacts can be done with the following command:\n[source, shell]\n----\n./gradlew publish\n----\n\n== Automated Releases\n\n=== Gradle\n\nUsing GitHub's workflows, the process of publishing an artifact can be handled automatically on tagging a git repo.\n\nTo set this up:\n\n. Add your username and publishing token to the repository's secrets (in the repo's settings).  The username should be under the key `USERNAME` and the your GitHub personal access token under the key `TOKEN`\n. Create a new file in your repo's root directory at the path `.github/workflows/release.yml`\n+\nThe contents of the `release.yml` file should be as follows:\n+\n.`release.yml`\n[source, yaml]\n----\nname: Artifact Publish\non:\n  push:\n    tags:\n      - '*'\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n      - name: Setup\n        uses: actions/setup-java@v1\n        with:\n          java-version: 15\n      - name: Publish Package\n        run: gradle publish\n        env:\n          USERNAME: ${{ secrets.USERNAME }}\n          TOKEN: ${{ secrets.TOKEN }}\n----\n\nAfter pushing up the new file, any tagged commit to the repository will be automatically built and deployed to GitHub Packages.\n\n== Appendix: Authentication Use Cases\n\nHow are a username/token combination transferred to Github during the following interations?\n\n. Manually deploy new artifacts: uses gradle.properties (or USERNAME/TOKEN env vars as backup)\n. Automatically deploy new artifacts: uses creds stored in the github repo\n. Local build into jars: uses gradle.properties (or GITHUB_* env vars as backup) with make jar\n. Local build into docker images: uses GITHUB_* env vars with make docker or extended docker build line\n. Local build with docker-compose: uses user-specified env vars with extended docker-compose build line\n. Jenkins build into docker images: use either env vars with extended docker-compose build line\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveupathdb%2Fmaven-packages","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveupathdb%2Fmaven-packages","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveupathdb%2Fmaven-packages/lists"}