Skip to content
John Casey edited this page Feb 14, 2014 · 10 revisions

AProx is a simple repository manager and tooling platform. It is designed for use with Apache Maven and other applications that use the Maven repository format.

##Contents

  1. Changelog
  2. Features
  3. Add-Ons
  4. Installation
  5. Building
  6. Hacking

Why A Platform?

Unlike other Maven repository manager applications, AProx is designed to be useful as more than simply a standalone repository manager. It is designed to accommodate extensions that aren't necessarily related to the task of resolving artifacts, but which do relate to Maven repository content. Additionally, it is designed to be used in a variety of contexts, from deployment as a simple no-frills WAR to use as a standalone application using Vert.x as its HTTP front-end. It's even possible - and will become simpler in the near future - to embed AProx directly in another application.

It's not just about resolving artifacts...

After all, a lot of things in a build environment revolve around the metadata and other content available in an artifact repository.

For instance, Maven settings.xml files are often highly tuned to the sources you use to resolve - and deploy - artifacts. If you're working in a complex environment, you may need to constrain your builds to resolve from on of several different repository mirrors at different times. Likewise, if your CI system performs suites of jobs that each need an isolated deployment location that won't pollute other builds, your settings.xml may need to override deployment properties and use multiple deployment locations. So AProx provides the ability to automatically generate settings.xml files for use with each repository, group, and deployment location it manages (see the dotMaven Add-On).

For cleanroom builds, much of the pain associated with bootstrapping a new build environment comes from determining the full list of the dependencies, plugins and other tools used in your project's build. Often, this comes down to a lengthy trial-and-error process of mopping the things that didn't appear in the dependency:list or dependency:resolve-plugins output. To address this, AProx provides an add-on to resolve a full dependency graph for one or more GAVs in one shot, with options to filter the graph in a variety of ways (see the Depgraph Add-On).

And sometimes, when your automated build infrastructure is complex and involves many repositories or repository groupings, it can get tricky to debug failing builds. Managing your own local repository manager to mix and match repositories in order to debug build problems can become a massive source of overhead. But there's no real reason it has to be (see the Autoprox Add-On).

How do you WANT to deploy?

Sometimes you have existing infrastructure that uses a JEE server like JBoss EAP or Wildfly; you already have tools to manage those instances, so it fits best to deploy a WAR file for your repository manager.

Other times, you may want a smaller footprint and less required infrastructure for your deployment; a standalone command line-driven application makes the most sense. Maybe you'd rather deploy via Docker?

It's even possible (though not yet simple) to embed AProx. The point is to provide repository-management logic (and associated add-ons) wherever it makes sense to you.

Clone this wiki locally