This is an AMP version of the article, its original content can be found here.
How to Set Up a Private Maven Repository in Amazon S3
is a perfect place for keeping private Maven artifacts.
I assume you keep public artifacts in
Maven Central because
you want them to be available to everybody. Private artifacts
are those you don't want visible to anyone except members
of your team. Thus, you want to deploy your
.jar files there
and make sure they are visible only by your team. Here is how we do
this in all our Java projects.
Create an S3 Bucket
First, you create a new S3 bucket. I would recommend you name it using
your project domain and a prefix. For example, with
repo is a prefix and
teamed.io is the domain.
There's no need to configure any permissions for this bucket. Just create it through the Amazon S3 console.
Create an IAM User
Create a new IAM user. I recommend you name it like
if your project name is
Add a new "inline policy" to the user:
repo.teamed.io is the name of the S3 bucket you
created a minute ago.
Make sure you have an "access key" for this new user. It must look similar to this:
The key is 20 characters (all caps), and the secret is 40 characters.
Add this configuration to your
Add this configuration to
Then, configure S3 Wagon,
You're ready to go. You can deploy your artifacts just by running Maven from the command line:
Now you want to see these artifacts in your browser, in a secure mode, by providing secure credentials. I recommend you use s3auth.com, as explained in Basic HTTP Auth for S3 Buckets.
Another recommendation is to configure rultor.com for deployment of your artifacts to S3 automatically.
First, encrypt your
settings.xml with this
me/test, you should use the name of your GitHub project.
As a result, you will get a new file named
settings.xml.asc. Add it to the root directory
of your project, then commit and push. The file contains your secret information,
but only the Rultor server can decrypt it.
.rultor.yml file in the root directory of your project
(The Rultor reference page
explains this format in greater detail):
Now it's time to see how it all works together. Create a new ticket in the GitHub issue tracker and post something like this into it (read more about Rultor commands):
You will get a response in a few seconds. The rest will be done by Rultor.