Use with Maven POMs

If you want to use a Apache Maven™ pom.xml instead of an ivy.xml file, you can select a POM file in the configuration options of the IvyDE classpath.

When a Maven POM is selected, the configurations list is updated with all Maven scopes.

Both examples below are a good illustration of the simplicity of using Maven POMs in Apache IvyDE:

Maven1 Sample

This sample presents a simple use case involving a Maven POM and the IvyDE classpath container. We are going to create an Eclipse™ project on commons-httpclient sources.

  • Download the commons httpclient sources

  • Unzip this file (c:/tmp/commons-httpclient/)

  • Create a new Eclipse Java project based on the unzipped sources (c:/tmp/commons-httpclient/)

httpProject errors

Note: your project will not compile: some imports cannot be resolved.

  • Add a new classpath container based on the "project.xml" POM and select "default" configuration (Maven scope)

httpProject pom
  • Finished. The project compiles!

httpProject clean

Maven2 Sample

This sample demonstrates how the IvyDE classpath container on a Apache Maven POM can handle transitive dependencies.

  • Create a new empty Java project in Eclipse.

  • In your project, create an ivysettings.xml file:

<ivysettings>
	<conf defaultResolver="ibiblio"/>
	<resolvers>
		<ibiblio name="ibiblio" />
	</resolvers>
</ivysettings>

Using the m2compatible attribute, you can benefit from Apache Maven 2 repository compatibility.

  • In your project, create a pom.xml file:

<project>
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.mycompany</groupId>
	<artifactId>myproject</artifactId>
	<version>1.0-SNAPSHOT</version>
	<dependencies>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.0</version>
		</dependency>
	</dependencies>
</project>
  • On the pom.xml file, open the context menu and click on "Add Ivy Library…​":

  • Select the configurations compile and runtime

maven2classpath1
  • click "Finish"

  • That’s all! Your IvyDE classpath container resolves all dependencies including those that were transitive to the commons-httpclient module!

maven2classpath2