Jump to: navigation, search

Difference between revisions of "EclipseLink/Maven"

()
(Sample pom.xml entries)
Line 175: Line 175:
 
*<releaseNumber>-RCx (For release candidates, replace x with the release candidate number e.g. 2.0.0-RC1)
 
*<releaseNumber>-RCx (For release candidates, replace x with the release candidate number e.g. 2.0.0-RC1)
  
== Sample pom.xml entries ==
+
== Sample pom.xml  ==
<pre>&lt;dependencies&gt;
+
 
  &lt;dependency&gt;
+
The following pom.xml is from an EclipseLink example that uses JPA to access a MySQL database and leverages JUnit for testing.
    &lt;groupId&gt;org.eclipse.persistence&lt;/groupId&gt;
+
 
    &lt;artifactId&gt;eclipselink&lt;/artifactId&gt;
+
<source lang="xml">
    &lt;version&gt;2.0.0&lt;/version&gt;
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    &lt;scope&gt;compile&lt;/scope&gt;
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      ...
+
<modelVersion>4.0.0</modelVersion>
  &lt;/dependency&gt;
+
 
&lt;/dependencies&gt;
+
<groupId>org.eclipse.persistence.example</groupId>
      ...
+
<artifactId>Employee</artifactId>
&lt;repositories&gt;
+
<version>0.0.1-SNAPSHOT</version>
  &lt;repository&gt;
+
<packaging>jar</packaging>
    &lt;id&gt;EclipseLink Repo&lt;/id&gt;
+
 
    &lt;!-- note that ampersands in this URL are escaped because this is in an xml file -
+
<name>Employee Example</name>
            un-escape them to use in browser
+
<url>http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee</url>
    --&gt;
+
<description>Simple JPA example using annotations.</description>
    &lt;url&gt;http://www.eclipse.org/downloads/download.php?r=1&amp;amp;nf=1&amp;amp;file=/rt/eclipselink/maven.repo&lt;/url&gt;
+
 
    &lt;!-- use this for javax.persistence
+
<properties>
    &lt;snapshots&gt;
+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        &lt;enabled&gt;true&lt;/enabled&gt;
+
<eclipselink.version>2.4.0</eclipselink.version>
    &lt;/snapshots&gt; --&gt;
+
</properties>
  &lt;/repository&gt;   
+
 
      ...
+
<repositories>
&lt;/repositories&gt;
+
<repository>
 +
<id>EclipseLink</id>
 +
<url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
 +
</repository>
 +
</repositories>
 +
 
 +
<dependencies>
 +
 +
<!-- eclipselink.jar with dependencies except commonj.sdo -->
 +
<dependency>
 +
<groupId>org.eclipse.persistence</groupId>
 +
<artifactId>eclipselink</artifactId>
 +
<version>${eclipselink.version}</version>
 +
<exclusions>
 +
<exclusion>
 +
<artifactId>commonj.sdo</artifactId>
 +
<groupId>commonj.sdo</groupId>
 +
</exclusion>
 +
</exclusions>
 +
</dependency>
 +
 
 +
<dependency>
 +
<groupId>mysql</groupId>
 +
<artifactId>mysql-connector-java</artifactId>
 +
<version>5.1.21</version>
 +
</dependency>
 +
 
 +
<dependency>
 +
<groupId>junit</groupId>
 +
<artifactId>junit</artifactId>
 +
<version>4.8.2</version>
 +
</dependency>
 +
</dependencies>
 +
 
 +
<build>
 +
<plugins>
 +
<plugin>
 +
<groupId>org.apache.maven.plugins</groupId>
 +
<artifactId>maven-compiler-plugin</artifactId>
 +
<version>2.5.1</version>
 +
<configuration>
 +
<source>1.6</source>
 +
<target>1.6</target>
 +
</configuration>
 +
</plugin>
 +
 
 +
<plugin>
 +
<groupId>org.apache.maven.plugins</groupId>
 +
<artifactId>maven-surefire-plugin</artifactId>
 +
<version>2.10</version>
 +
<configuration>
 +
<test>tests.AllTests</test>
 +
<argLine>-javaagent:${user.home}\.m2\repository\org\eclipse\persistence\eclipselink\2.4.0\eclipselink-2.4.0.jar</argLine>
 +
</configuration>
 +
</plugin>
 +
</plugins>
 +
</build>
 +
 
 +
</project>
 +
</source>
  
</pre>
 
 
[[Category:EclipseLink|Maven]]
 
[[Category:EclipseLink|Maven]]

Revision as of 12:57, 22 August 2012

The EclipseLink project currently produces a maven repository for its releases

If you have any questions about using it, or experience problems, please let us know on our users mailing list or forum.

Configuring your pom.xml

To help users diagnose Maven issues, we have created a basic POM that simply establishes EclipseLink dependencies (currenly using the 2.4.0 release). Executing it will verify your connection to the repository. Alternate Repository URLs are discussed. The POM can be found [here].

<repository>

Within your pom.xml you will need to specify the EclipseLink repository using:

<repository>
   <id>EclipseLink Repo</id>
   <url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
</repository>

<dependencies>

The artifacts can then be added to you pom as follows. The complete list of available artifacts and their usage is below.

<dependency>\
   <groupId>org.eclipse.persistence</groupId>
   <artifactId>{artifact}</artifactId>
   <version>{version}</version>
   <scope>compile</scope>
</dependency>
Artifact Id Description
eclipselink The non-OSGI EclipseLink jar (includes the functionality below)
org.eclipse.persistence.antlr EclipseLink's ANTLR OSGI bundle
org.eclipse.persistence.asm EclipseLink ASM OSGI bundle
org.eclipse.persistence.core EclipseLink Core OSGI bundle
org.eclipse.persistence.dbws EclipseLink DBWS OSGI bundle
org.eclipse.persistence.jpa EclipseLink JPA OSGI bundle
org.eclipse.persistence.jpa.modelgen EclipseLink Modelgen pre-processor (non-OSGI)
org.eclipse.persistence.moxy EclipseLink MOXY OSGI bundle
org.eclipse.persistence.nosql OSGI fragment of Core bundle for NoSQL support (including MongoDB)
org.eclipse.persistence.oracle OSGI fragment of Core bundle with Oracle-DB specific EclipseLink extensions
org.eclipse.persistence.oracle.nosql OSGI fragment of Core bundle for Oracle specific NoSQL support
org.eclipse.persistence.osgi
org.eclipse.persistence.sdo EclipseLink SDO OSGI bundle
javax.persistence EclipseLink version of the javax.persistence classes (OSGi enabled)
org.eclipse.persistence.equinox EclipseLink JPA Equinox OSGi Fragment
org.eclipse.persistence.jpa.modelgen.processor EclipseLink JPA Modelgen Processor (non-OSGi) (Meta-data only)
org.eclipse.persistence.tools.oracleddl Oracle DB model - OSGi bundle
org.eclipse.persistence.weaving EclipseLink JPA - "Weaving for Equinox" OSGi Fragment

What bundles should I get

The following lists what you should get based on your needs

Full functionality - non OSGI

This is the recommended way of getting EclipseLink unless you are using OSGi, or you want to explicitly exclude certain parts of EclipseLink

  • eclipselink
  • javax.persistence (optional - only needed if you are using JPA outside of a Java EE container)

JPA

  • JPA
  • Core (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • Antlr (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • Asm (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • javax.persistence
  • Oracle (optional - only needed to access Oracle DB specific functionality)

MOXy

  • MOXy
  • Core (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • Antlr (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • Asm (starting in 2.0.0 should be retrieved by maven dependency mechanism)
SDO
  • SDO
  • MOXy
  • Core (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • Antlr (starting in 2.0.0 should be retrieved by maven dependency mechanism)
  • Asm (starting in 2.0.0 should be retrieved by maven dependency mechanism)

Versioning

Available Released Versions

  • 2.4.0
  • 2.3.3
  • 2.3.2
  • 2.3.1
  • 2.3.0
  • 2.2.1
  • 2.2.0
  • 2.1.3
  • 2.1.2
  • 2.1.1
  • 2.1.0
  • 2.0.2
  • 2.0.1
  • 2.0.0
    • JPA 2.0 Implementation release
  • 1.2.0
  • 1.1.4
    • final 1.1.x patchset
  • 1.1.3
  • 1.1.2
    • Eclipse Galileo Release
  • 1.1.1
  • 1.1.0
  • 1.0.2
  • 1.0.1
  • 1.0

NOTE: javax.persistence (JPA 2.0) has been released as version 2.0.0, 2.0.1, 2.0.2, and 2.0.3

Releases Under development

  • 2.5.0
  • 2.4.1
  • 2.3.4

Under development releases have the following additional naming conventions

  • <releaseNumber>-SNAPSHOT (The most recent nightly build e.g. 2.1.0-SNAPSHOT)
  • <releaseNumber>-Mx (For milestones, replace x with the milestone number e.g. 2.0.0-M1)
  • <releaseNumber>-RCx (For release candidates, replace x with the release candidate number e.g. 2.0.0-RC1)

Sample pom.xml

The following pom.xml is from an EclipseLink example that uses JPA to access a MySQL database and leverages JUnit for testing.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
 
	<groupId>org.eclipse.persistence.example</groupId>
	<artifactId>Employee</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
 
	<name>Employee Example</name>
	<url>http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee</url>
	<description>Simple JPA example using annotations.</description>
 
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<eclipselink.version>2.4.0</eclipselink.version>
	</properties>
 
	<repositories>
		<repository>
			<id>EclipseLink</id>
			<url>http://download.eclipse.org/rt/eclipselink/maven.repo</url>
		</repository>
	</repositories>
 
	<dependencies>
 
		<!-- eclipselink.jar with dependencies except commonj.sdo -->
		<dependency>
			<groupId>org.eclipse.persistence</groupId>
			<artifactId>eclipselink</artifactId>
			<version>${eclipselink.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>commonj.sdo</artifactId>
					<groupId>commonj.sdo</groupId>
				</exclusion>
			</exclusions>
		</dependency>
 
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.21</version>
		</dependency>
 
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.8.2</version>
		</dependency>
	</dependencies>
 
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.5.1</version>
				<configuration>
					<source>1.6

<target>1.6</target> </configuration> </plugin>

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.10</version> <configuration> <test>tests.AllTests</test> <argLine>-javaagent:${user.home}\.m2\repository\org\eclipse\persistence\eclipselink\2.4.0\eclipselink-2.4.0.jar</argLine> </configuration> </plugin> </plugins> </build>

</project> </source>