Building OpenJPA has been edited by Marc Prud'hommeaux (May 22, 2007).

Change summary:

Updated to reflect move from incubator svn repository to TLP repository

(View changes)

Content:

Building OpenJPA

These instructions describe how to check out the current OpenJPA source code (from the Subversion source code management repository) and build it (using the Apache Maven 2 build tool). They are written for use from the console, and are known to work on Linux and Mac OSX. They are also reported to work from Windows.

  1. Ensure that you have Java 1.5 installed and in your path by running: java -version OpenJPA does not currently build with JDK 1.6.
  2. Install the build tool, Apache Maven 2.0.4, from http://maven.apache.org/. If it is installed correctly, typing mvn -v from the console will result in the text Maven version: 2.0.4
  3. Install the SCM tool, Subversion, from http://subversion.tigris.org/. If it installed correctly, typing the following command should output help information: svn help
  4. Create a new directory you want to do your work in, then change to that directory from the console.
  5. Check out the sources by running: svn co https://svn.apache.org/repos/asf/openjpa/trunk openjpa. It will check out the sources to openjpa directory. More information on checking out the OpenJPA sources can be found on the SourceAccess page.
  6. Change to the openjpa directory, which has already been created in the previous step.
  7. Build OpenJPA by running: mvn package or better mvn install. The first time you run the build, many dependencies are automatically resolved and downloaded. It is common for dependency downloading to fail the first time, which will fail the build. If any of these dependency downloads fail, just re-run the command. You may also add the following to your ~/.m2/setting.xml file (see http://maven.apache.org/guides/mini/guide-mirror-settings.html)
    #
<settings>
    <mirrors>
        <mirror>
            <id>repo.mergere.com</id>
            <url>http://repo.mergere.com/maven2</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>
</settings>

If any tests fail, and you want to ignore the failures, instead run:

mvn package -Dtest=false

An example session as as follows:

$ cd /tmp/

$ java -version

java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)

$ mvn -v

Maven version: 2.0.4

$ svn --version

svn, version 1.1.4 (r13838)
   compiled Jul 10 2006, 22:17:43

$ svn co https://svn.apache.org/repos/asf/openjpa/trunk/

A  trunk/openjpa-lib
A  trunk/openjpa-lib/src
A  trunk/openjpa-lib/src/test
A  trunk/openjpa-lib/src/test/java
A  trunk/openjpa-lib/src/test/java/org
A  trunk/openjpa-lib/src/test/java/org/apache
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test
A  trunk/openjpa-lib/src/test/java/org/apache/openjpa/lib/test/AbstractTestCase.java

 ...

A  trunk/openjpa-persistence/pom.xml
Checked out revision 421381.

$ cd trunk/

$ mvn compile

[INFO] Scanning for projects...
[INFO] Reactor build order: 
[INFO]   OpenJPA
[INFO]   Utilities
[INFO]   Kernel
[INFO]   JDBC
[INFO]   XML Store
[INFO]   JDBC 1.5
[INFO]   Kernel 1.5
[INFO]   JPA
[INFO]   JPA JDBC
[INFO]   OpenJPA Project
[INFO] ----------------------------------------------------------------------------
[INFO] Building OpenJPA
[INFO]    task-segment: [compile]
[INFO] ----------------------------------------------------------------------------

 ...

[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] OpenJPA ............................................... SUCCESS [0.789s]
[INFO] Utilities ............................................. SUCCESS [3.489s]
[INFO] Kernel ................................................ SUCCESS [9.347s]
[INFO] JDBC .................................................. SUCCESS [12.208s]
[INFO] XML Store ............................................. SUCCESS [1.166s]
[INFO] JDBC 1.5 .............................................. SUCCESS [1.519s]
[INFO] Kernel 1.5 ............................................ SUCCESS [0.538s]
[INFO] JPA ................................................... SUCCESS [2.777s]
[INFO] JPA JDBC .............................................. SUCCESS [2.151s]
[INFO] OpenJPA Project ....................................... SUCCESS [1.495s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37 seconds
[INFO] Finished at: Wed Jul 26 11:44:33 PDT 2006
[INFO] Final Memory: 10M/41M
[INFO] ------------------------------------------------------------------------


$ mvn package -Dtest=false

[INFO] Scanning for projects...

...

[INFO] [assembly:assembly {execution: bin}]
[INFO] Building zip: /tmp/openjpatestbuild/trunk/openjpa-project/target/filtered-site/
resources/downloads/openjpa-0.9.0.zip

... 


$ ls -lh openjpa-project/target/filtered-site/resources/downloads/

total 9.2M
-rw-r--r--    1 mprudhom wheel        4.0M Jul 26 11:46 openjpa-0.9.0-sources.zip
-rw-r--r--    1 mprudhom wheel        5.2M Jul 26 11:46 openjpa-0.9.0.zip

Executing various build tasks

Running just the "TestPersistence" test case
mvn test -Dtest=TestPersistence
Building and running only the examples included in the distribution
mvn -Dtest=false -Pexamples-profile integration-test
Building just the javadoc

First install the jars:

mvn install -Dtest=false

Then build the javadoc:

mvn package -Dtest=false -Pjavadoc-profile

The javadoc will be output to target/site/apidocs/index.html.

Building just the docbook documentation
mvn -f openjpa-project/pom.xml process-resources -Pdocbook-profile

The manual HTML will be output to openjpa-project/target/manual/manual.html.

Reply via email to