# Build

Portability
Environment
Building the Software
Using Maven 2
Translating

## Portability

This database is written in Java and therefore works on many platforms. It can also be compiled to a native executable using GCJ.

## Environment

A Java Runtime Environment (JRE) version 1.4 or higher is required to run this database.

To build the database executables, the following software stack was used. Newer version or compatible software works too.

- Windows XP
- Sun JDK Version 1.4
- Mozilla Firefox 1.5
- Eclipse Version 3.2.2
- YourKit Java Profiler
- Apache Ant Version 1.6.5

## Building the Software

On the command line, go to the directory src and execute the following command:

    build -?

You will get a list of targets. If you want to build the jar file, execute:

    build jar

To create a jar file with the JDBC API and the classes required to connect to a server only, use the target jarClient:

    build jarClient

The other targets may be used as well.

## Using Maven 2

### Using a Central Repository

You can include the database in your Maven 2 project as a dependency. Example:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>${version}</version>
    </dependency>

New versions of this database are first uploaded to http://hsql.sourceforge.net/m2-repo/ and then automatically synchronized with the main maven repository; however after a new release it may take a few hours before they are available there.

### Using Snapshot Version

To build a 'snapshot' H2 .jar file and upload it the to the local Maven 2 repository, execute the following command:

    build mavenInstallLocal

Afterwards, you can include the database in your Maven 2 project as a dependency:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

## Translating

The translation of this software is split into the following parts:

- H2 Console: src/main/org/h2/server/web/res/_text_*.properties
- Error messages: src/main/org/h2/res/_messages_*.properties
- Web site: src/docsrc/text/_docs_*.utf8.txt

The conversion between UTF-8 and Java encoding (using the \u syntax), as well as the HTML entities (&#..;) is automated by running the tool PropertiesToUTF8. The web site translation is automated as well, using `build docs`.