The next generation of build tools for Eclipse plugins and RCP applications

November 26, 2008 By

Build automation has always been considered painful, especially for complex builds. So, it seemed like a good idea to change that and come up with a solution that would be easy to use. I want to introduce you to Tycho, the next generation of Maven plugins and tools for building Eclipse plugins and RCP applications.

(more…)

Categories: m2eclipse Tags: , ,

Nine Reasons to Use a Repository Manager: Sonatype Nexus

November 26, 2008 By

I’m surprised at the number of organizations out there that use a tool that depends on the Maven Repository, but haven’t yet adopted a repository manager. It could be that no one has made the argument for it. No one has stood up on a platform and called people’s attention to the benefits of using a repository manager. The responses I’ve always heard from organizations that don’t use a Maven repository manager are along the lines of: “We don’t need to get that complex…,” or “Central’s fine, we don’t need to host the entire repository locally…”

Needless to say, there are a few misconceptions floating around about what a good Maven repository “is”. First, it isn’t complex to set up. It will take you a few minutes to download and install Nexus, and we’ve gone out of our way to make it as easy and non-invasive as possible. Second, a repository manager which can cache a remote repository doesn’t cache the entire thing. A good repository manager caches only what you use on an as-needed basis. Here are nine more reasons for people who might be on the fence about a repository manager.

(more…)

Categories: Nexus Tags: ,

A visual history of Maven 2

November 25, 2008 By

This is a visual follow on to my previous post about the Maven version shuffling. As they say, a picture is worth a thousand words:

Click to see full size.

Need I say more?

Categories: Maven

Deploying 3rd-party JARs to Maven Repositories with Sonatype Nexus

November 25, 2008 By

A common issue in Maven development is the incorporation of 3rd-party JARs into a repository. If you are working with a proprietary database like Oracle, or if you have a vendor that is supplying you with some proprietary 3rd-party JAR that needs to be incorporated into your build, what do you do? How do you get this JAR into a Maven repository that your build can access? This is a common question when people want to start publishing artifacts in a custom repository, and most Maven users might not be aware that repository managers like Sonatype Nexus provide an easy way to deploy these floating, one-off JAR files as well as a way to deploy artifacts from your own build. (more…)

Categories: How-To Tags: ,

What is Mercury?

November 24, 2008 By

Mercury is a serious attempt to:

  • Decouple major Maven components, making them available as stand-alone building blocks rather then having Maven as as one big monolith, not usable outside of its environment.
  • Artifact – clearly separate an Artifact from its metadata.
  • Repository – convert a repository into active component. It used to give back just pathOf(), now it accepts GAV collections and gives back either metadata or full blown Artifacts.
  • Transport – an API in development.
  • DependencyTreeBuilder main API for dependency graph creation and conflict resolution.
  • Decouple container, so that these components are just plain pojos.
  • Introduce Jetty-based HTTP/HTTPS and WebDAV transactional transport layer.
  • Asynchronous downloads and uploads. One of the few successful usages of Java NIO in OSS.
  • Transactional operations – all-or-nothing for file sets.
  • Move integrity control into transport layer, upper level components should not care about these details.
  • Abstract out metadata cache, provide at least one implementation there.
  • Integrate these changes back to Maven 3.x to make it even better platform than it is right now (if it is possible to be better :) )

Currently Mercury can already be used for accessing repositories, and conflict resolution is under testing.

Categories: Maven Tags: ,