mirror of https://github.com/apache/openjpa.git
225 lines
10 KiB
Plaintext
225 lines
10 KiB
Plaintext
Building Apache OpenJPA
|
|
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
|
|
--------------------------------------------------------------------------------
|
|
|
|
These instructions describe how to build OpenJPA from source code using the
|
|
Apache Maven 2 build tool. They are written for use from the console, and are
|
|
known to work on Windows, Linux and Mac OSX.
|
|
|
|
The most up to date version of these instructions may be found on the OpenJPA
|
|
website at http://openjpa.apache.org/building.html
|
|
|
|
1. Ensure that Java SE 6 is installed and on your path by running:
|
|
java -version
|
|
OpenJPA requires Java 1.6 or later to build and for runtime.
|
|
2. Install the build tool Apache Maven 2.2.1 or later, from:
|
|
http://maven.apache.org/
|
|
If it is installed correctly, typing mvn -v from the console will result
|
|
in the text like "Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)"
|
|
3. Extract the source archive if you have not already done so.
|
|
The source will create a new directory named:
|
|
openjpa-<version>-source. Where <version> is the OpenJPA
|
|
version, for example apache-openjpa-2.2.0-source.
|
|
4. Change to the OpenJPA source directory, which has already been created in
|
|
the previous step.
|
|
5. 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 -DskipTests
|
|
|
|
An example session is as follows:
|
|
|
|
$ cd /tmp/
|
|
|
|
$ java -version
|
|
java version "1.6.0_17"
|
|
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
|
|
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
|
|
|
|
$ mvn -v
|
|
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
|
|
|
|
...
|
|
|
|
$ svn --version
|
|
svn, version 1.5.5 (r34862)
|
|
compiled Jan 5 2009, 12:30:39
|
|
|
|
$ 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 1065345.
|
|
|
|
$ cd trunk/
|
|
|
|
$ mvn clean install -DskipTests -DfailIfNoTests=false
|
|
|
|
[INFO] Scanning for projects...
|
|
[INFO] Reactor build order:
|
|
[INFO] OpenJPA Parent POM
|
|
[INFO] OpenJPA Utilities Library
|
|
[INFO] OpenJPA Kernel
|
|
[INFO] OpenJPA JDBC
|
|
[INFO] OpenJPA Persistence
|
|
[INFO] OpenJPA Persistence JDBC
|
|
[INFO] OpenJPA Persistence Locking Tests
|
|
[INFO] OpenJPA tools
|
|
[INFO] OpenJPA Maven Plugin
|
|
[INFO] OpenJPA XML Store
|
|
[INFO] OpenJPA Slice
|
|
[INFO] OpenJPA JEST
|
|
[INFO] OpenJPA Aggregate Jar
|
|
[INFO] OpenJPA Aggregate Jar with Dependencies
|
|
[INFO] OpenJPA Project Docs and Assemblies
|
|
[INFO] OpenJPA Examples
|
|
[INFO] OpenJPA Examples - Simple
|
|
[INFO] OpenJPA Examples - image-gallery
|
|
[INFO] OpenJPA Examples - OpenBooks
|
|
[INFO] OpenJPA Integration Tests
|
|
[INFO] OpenJPA Integration Tests - Daytrader
|
|
[INFO] OpenJPA Integration Tests - Examples
|
|
[INFO] OpenJPA Integration Tests - SLF4JLogFactory
|
|
[INFO] OpenJPA Integration Tests - JPA TCK
|
|
[INFO] OpenJPA Integration Tests - Bean Validation
|
|
[INFO] OpenJPA Integration Tests - JMX Platform MBeans
|
|
[INFO] ------------------------------------------------------------------------
|
|
[INFO] Building OpenJPA Parent POM
|
|
[INFO] task-segment: [clean, install]
|
|
[INFO] ------------------------------------------------------------------------
|
|
|
|
...
|
|
|
|
[INFO]
|
|
[INFO] ------------------------------------------------------------------------
|
|
[INFO] Reactor Summary:
|
|
[INFO] ------------------------------------------------------------------------
|
|
[INFO] OpenJPA Parent POM .................................... SUCCESS [2:11.649s]
|
|
[INFO] OpenJPA Utilities Library ............................. SUCCESS [31.576s]
|
|
[INFO] OpenJPA Kernel ........................................ SUCCESS [39.863s]
|
|
[INFO] OpenJPA JDBC .......................................... SUCCESS [27.326s]
|
|
[INFO] OpenJPA Persistence ................................... SUCCESS [23.530s]
|
|
[INFO] OpenJPA Persistence JDBC .............................. SUCCESS [1:14.696s]
|
|
[INFO] OpenJPA Persistence Locking Tests ..................... SUCCESS [30.881s]
|
|
[INFO] OpenJPA tools ......................................... SUCCESS [0.968s]
|
|
[INFO] OpenJPA Maven Plugin .................................. SUCCESS [2:45.320s]
|
|
[INFO] OpenJPA XML Store ..................................... SUCCESS [25.335s]
|
|
[INFO] OpenJPA Slice ......................................... SUCCESS [10.456s]
|
|
[INFO] OpenJPA JEST .......................................... SUCCESS [8.861s]
|
|
[INFO] OpenJPA Aggregate Jar ................................. SUCCESS [50.297s]
|
|
[INFO] OpenJPA Aggregate Jar with Dependencies ............... SUCCESS [13.871s]
|
|
[INFO] OpenJPA Project Docs and Assemblies ................... SUCCESS [1:12.215s]
|
|
[INFO] OpenJPA Examples ...................................... SUCCESS [1.241s]
|
|
[INFO] OpenJPA Examples - Simple ............................. SUCCESS [5.165s]
|
|
[INFO] OpenJPA Examples - image-gallery ...................... SUCCESS [6.933s]
|
|
[INFO] OpenJPA Examples - OpenBooks .......................... SUCCESS [26.761s]
|
|
[INFO] OpenJPA Integration Tests ............................. SUCCESS [0.957s]
|
|
[INFO] OpenJPA Integration Tests - Daytrader ................. SUCCESS [21.631s]
|
|
[INFO] OpenJPA Integration Tests - Examples .................. SUCCESS [0.143s]
|
|
[INFO] OpenJPA Integration Tests - SLF4JLogFactory ........... SUCCESS [6.690s]
|
|
[INFO] OpenJPA Integration Tests - JPA TCK ................... SUCCESS [0.321s]
|
|
[INFO] OpenJPA Integration Tests - Bean Validation ........... SUCCESS [10.694s]
|
|
[INFO] OpenJPA Integration Tests - JMX Platform MBeans ....... SUCCESS [19.434s]
|
|
[INFO] ------------------------------------------------------------------------
|
|
[INFO] ------------------------------------------------------------------------
|
|
[INFO] BUILD SUCCESSFUL
|
|
[INFO] ------------------------------------------------------------------------
|
|
[INFO] Total time: 13 minutes 33 seconds
|
|
[INFO] Finished at: Thu Feb 09 10:25:05 CST 2012
|
|
[INFO] Final Memory: 118M/232M
|
|
[INFO] ------------------------------------------------------------------------
|
|
|
|
$ ls openjpa-project/target/site/downloads/
|
|
|
|
apache-openjpa-2.2.0-SNAPSHOT-binary.zip
|
|
apache-openjpa-2.2.0-SNAPSHOT-source.zip
|
|
|
|
|
|
|
|
Advanced Build Options
|
|
======================
|
|
|
|
|
|
To speed up the local build time you might want to exclude the tests which
|
|
check locking timeouts as they take a really long time (mostly waiting for
|
|
timeout expiration).
|
|
|
|
This can be achieved by building the project with
|
|
$ mvn clean install -Dsurefire.excludes.locking=**/*
|
|
|
|
|
|
|
|
Building and deploying the Site
|
|
===============================
|
|
|
|
$ mvn site site:deploy -Pjavadoc-profile,docbook-profile
|
|
|
|
To generate the docbook documentation you need to cd into the openjpa-project directory and run
|
|
|
|
$ cd ./openjpa-project
|
|
$ mvn clean install -Papache-release,docbook-profile
|
|
|
|
The generated PDF is available under ./target/docbook/manual.pdf
|
|
|
|
|
|
Running unit tests in the Debugger
|
|
==================================
|
|
|
|
By default all tests run against a derby database.
|
|
To run the tests in the debugger simply add the following JVM properties
|
|
|
|
-ea -Dopenjpa.ConnectionURL=jdbc:derby:target/database/openjpa-derby-database;create=true -Dopenjpa.ConnectionDriverName=org.apache.derby.jdbc.EmbeddedDriver
|
|
|
|
For running against a MySQL Docker installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=com.mysql.jdbc.Driver -Dopenjpa.ConnectionURL=jdbc:mysql://localhost:3306/openjpatst -Dopenjpa.ConnectionUserName=openjpatst -Dopenjpa.ConnectionPassword=openjpatst
|
|
|
|
Running against a PostgreSQL Docker installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=org.postgresql.Driver -Dopenjpa.ConnectionURL=jdbc:postgresql://localhost:5432/openjpatst -Dopenjpa.ConnectionUserName=postgres -Dopenjpa.ConnectionPassword=postgres
|
|
|
|
For running against a MariaDB Docker installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=org.mariadb.jdbc.Driver -Dopenjpa.ConnectionURL=jdbc:mariadb://localhost:3306/openjpatst -Dopenjpa.ConnectionUserName=root -Dopenjpa.ConnectionPassword=openjpatst
|
|
|
|
For running against a h2 based installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=org.h2.Driver -Dopenjpa.ConnectionURL=jdbc:h2:./target/database/openjpa-h2-database -Dopenjpa.ConnectionUserName=root -Dopenjpa.ConnectionPassword=openjpatst
|
|
|
|
For running against a hsqldb based installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=org.hsqldb.jdbcDriver -Dopenjpa.ConnectionURL=jdbc:hsqldb:mem:openjpa20-hsqldb-database -Dopenjpa.ConnectionUserName=sa -Dopenjpa.ConnectionPassword=
|
|
|
|
For running tests against a Microsoft SQLServer Docker based installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=com.microsoft.sqlserver.jdbc.SQLServerDriver -Dopenjpa.ConnectionURL=jdbc:sqlserver://localhost:1433;sendTimeAsDatetime=false -Dopenjpa.ConnectionUserName=SA -Dopenjpa.ConnectionPassword=OpenJP8tst
|
|
|
|
For running against a Oracle Docker installation:
|
|
-ea -Dopenjpa.ConnectionDriverName=oracle.jdbc.driver.OracleDriver -Dopenjpa.ConnectionURL=jdbc:oracle:thin:@localhost:1521:xe -Dopenjpa.ConnectionUserName=openjpatst -Dopenjpa.ConnectionPassword=openjpatst
|
|
|
|
|
|
For starting tests in `openjpa-persistence-jdbc` inside a compiler you can also trigger all the enhancement manually via:
|
|
|
|
$> mvn process-test-classes
|