14.6. Automated Deployment
Overview
The Maven proxy supports not just downloading artifacts, but also uploading artifacts. Hence, if you want to make an artifact available to all of the containers in the fabric, a simple way of doing this is to upload the artifact to the Maven proxy. For ultimate convenience in a development environment, you can automate the deployment step by installing the Fabric8 Maven plug-in in your project POM file.
Discover the upload URL of the current master
To discover the upload URL of the current Maven proxy master instance, invoke the
fabric:cluster-list
command, as follows:
JBossFuse:karaf@root> cluster-list servlets/io.fabric8.fabric-maven-proxy [cluster] [masters] [slaves] [services] [] 1.2.0.redhat-621084/maven/download root root - http://127.0.0.1:8181/maven/download 1.2.0.redhat-621084/maven/upload root root - http://127.0.0.1:8181/maven/upload
In this example, the upload URL of the current master is
http://127.0.0.1:8181/maven/upload
.
Manually deploy a Maven project
You can build a Maven project and upload the resulting artifact directly to the Maven proxy server, by invoking
mvn deploy
with the altDeploymentRepository
command-line option. The value of altDeploymentRepository
is specified in the following format:
ID::Layout::RepositoryURL
Where the format segments can be explained as follows:
ID
- Can be used to pick up the relevant credentials from the
settings.xml
file (from the matchingsettings/servers/server/id element
). Otherwise, the credentials must be specified in the repository URL. If necessary, you can simply specify a dummy value for the ID. Layout
- Can be either
default
(for Maven3 or Maven2) orlegacy
(for Maven1, which is not compatible with JBoss A-MQ). RepositoryURL
- The Maven proxy upload URL. For example,
http://User:Password@localhost:8181/maven/upload/
.
For example, to deploy a Maven project to a Maven proxy server running on the localhost (
127.0.0.1
), authenticating with the admin/admin credentials, enter a command like the following:
mvn deploy -DaltDeploymentRepository=releaseRepository::default::http://admin:admin@127.0.0.1:8181/maven/upload/
Automatically deploy a Maven project
When working in a build environment, the most convenient way to interact with the Maven proxy server is to configure the Fabric8 Maven plug-in. The Fabric8 Maven plug-in can automatically deploy your project to the local Maven proxy and, in addition, has the capability to create or update a Fabric profile for your application. For more details, see Chapter 7, Fabric8 Maven Plug-In.