Clone wiki

EncyclopeDIA / encyclopedia-maven-repo

EncyclopeDIA Maven Repo (AWS S3)

Beginning with PR #28, the project's Maven POM is configured to use a Maven repository (hosted on AWS S3) to fetch integration test data. Access to this repository is limited to permitted AWS users; currently this access is managed by Proteome Software, who provides the AWS resources.

Cloud builds of EncyclopeDIA (see Bitbucket Pipelines) are allowed access to the repository by a secret access key configured through repository variables which are set as environment variables during a build and used by the Maven S3 Wagon. This configuration also allows deployment of artifacts from some builds, though currently this is only used for regression test reference data; see Bitbucket Pipelines for more information).

To set up alternative hosting of a repository, or use different credentials follow the basic AWS setup steps described in this blog post (archive link). Ensure that the role used to create the S3 bucket is also assigned to the created IAM user. You can then update the repository variables in the Bitbucket repo configuration with the access key ID and secret. You will also have to update the POM to fetch dependencies from and deploy artifacts to the new S3 repository.

Building with a local Maven repository

The configuration present in this repository permits using a settings.xml that contains a <mirror> element (with e.g. <mirrorOf>*</mirrorOf>). This will result in all repository queries being directed to the mirror, which will remove the need for AWS credentials. However, this mirror will either need access to the content hosted on S3, or otherwise mirror it. In addition, this can greatly speed up builds by avoiding separate lookups of each dependency in each configured repository.

Deploying build artifacts to a local repository requires overriding the configured deployment repository by using the -DaltReleaseDeploymentRepository and -DaltSnapshotDeploymentRepository parameters for maven-deploy-plugin.