The next generation of build tools for Eclipse plugins and RCP applications
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.
Nine Reasons to Use a Repository Manager: Sonatype Nexus
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.
A visual history of Maven 2
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:
Need I say more?
Deploying 3rd-party JARs to Maven Repositories with Sonatype Nexus
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…)
What is Mercury?
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.
