Raven Plugin


Raven is a plug-in for Jetbrains IntelliJ IDEA Java development environment. Now in it's first version, it allows browsing of local and remote Maven Repository management, adding dependency Java Archives (JARs) to the module classpaths and provides some support to update dependencies in Maven Project Descriptor 3.0 files.

Below is a brief introduction of the current functionality. Please note that there might be some bugs still lurking in the shadows, so be warned...

System Requirements:
Raven was developed on Mac OS X with Java 1.4.2 but should run on any system that IntelliJ IDEA runs on. It is available for IDEA 4.5 and as well as 5.0. To install it, just use the plug-in manager or alternatively, download it from the link in the sidebar.

It is actually not required that you have to have Maven installed, although obviously you would most fun if you had.

Future Plans:
This is only the first version, but I do hope it is a useful addition to the marvellous Java IDE and bridges a gap that not only I myself experienced. Just to keep you coming back here is a teaser of what the next version might have
  • a better configuration panel
  • downloading declared dependencies
  • better project descriptor integration
If you are interested, then please subscribe to the Raven Plug-in RSS feed.

Raven Panel


Raven docks a panel on the right side of IDEAs window. It consists of a toolbar and two tabs, one for the local repository, and another for the remote repositories.
Pasted Graphic

Repositories


For Maven, a repository is just a structured list of files stored on either your local machine or on a web server. Usually on your local machine it is found in your home directory ~/.maven/repository, for a remote repository, you'll have to provide a URL.

A repository stores all kinds of interesting information, but mostly JAR files in a defined structure so they can be looked up by Maven. They are ordered by a groupId, which is shown in the list, and the actual artifacts as artifactId-version.
Pasted Graphic 4

View dependency types


Pasted Graphic 5
There are actually more levels in the repository than Raven initially shows. A repository not only contains JARs, but also a lot of other interesting dependencies like WARs or EARs for J2EE application, or project descriptors (POMs), licences and even source or binary distributions. You can reveal all these items by selecting the Folder button. Please note that only JARs can be added to modules though.

Adding Dependencies to Modules


Pasted Graphic 7
The most useful feature of Raven is to add the selected JAR as a dependency to an IntelliJ IDEA module. To do this, you press the Add Dependency button and select the module form the list. Note that only JARs can be added to modules, but you can certainly select more than one and add them all in one go.

Remote Repositories


The main Maven repository is hosted at http://www.ibiblio.org/maven/ and is set up automatically in Raven. Any other remote repository accessible through http can be added in the Raven configuration panel, where you could also change the path to your local repository.
Pasted Graphic 3

Add or download only


Pasted Graphic 7
For remote repositories, that Add Dependency button gives you the choice to either download the selected artifact from the remote repository to your local one and add it as a dependency right away, or to just download it. Also note that the remote repository list highlights artifacts that you already have in your local repository in blue. You can only download artifacts that you don't have locally already, unless it is a SNAPSHOT version.

Refresh view


Pasted Graphic 6
The remote view allows you the browse through any repository you've set up in the Raven configuration panel. Be patient, as it might take a while to load the initial list of groups. This is then caches for duration of your session, but you can reload it by pressing the refresh button.

Project Descriptor



Pasted Graphic 8
Raven has an initial, but very limited support for POMs, the Maven project descriptors. These are XML files used by Maven to decide what to include in your builds. The biggest pain with Maven is writing POMs initially, so with Raven, you can create a stub version of project.xml containing the dependencies added already. If you already have a project.xml file at the root of your module, Raven very cautiously tries to update it, that is it tries to add any dependencies at the end of your section, that do not exist in the given version already. It never removes or changes any existing dependencies.