build.html 5.3 KB
Newer Older
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
<!--
3 4 5
Copyright 2004-2008 H2 Group. Multiple-Licensed under the H2 License, Version 1.0,,
and under the Eclipse Public License, Version 1.0
(http://h2database.com/html/license.html).
6 7
Initial Developer: H2 Group
-->
8 9
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /><title>
10
Build
11
</title><link rel="stylesheet" type="text/css" href="stylesheet.css" />
12 13 14 15 16 17
<script type="text/javascript" src="navigation.js"></script>
</head><body onload="frameMe();">
<table class="content"><tr class="content"><td class="content"><div class="contentDiv">

<h1>Build</h1>
<a href="#portability">
18
    Portability</a><br />
19
<a href="#environment">
20
    Environment</a><br />
21
<a href="#building">
22
    Building the Software</a><br />
23
<a href="#maven2">
24
    Using Maven 2</a><br />
25 26
<a href="#translating">
    Translating</a><br />
27 28
<a href="#providing_patches">
    Providing Patches</a><br />
29

30
<br /><a name="portability"></a>
31
<h2>Portability</h2>
32
<p>
33
This database is written in Java and therefore works on many platforms.
34
It can also be compiled to a native executable using GCJ.
35
</p>
36

37
<br /><a name="environment"></a>
38
<h2>Environment</h2>
39
<p>
40 41 42
A Java Runtime Environment (JRE) version 1.4 or higher is required to run this database.
</p>
<p>
43
To build the database executables, the following software stack was used.
44
Newer version or compatible software works too.
45
</p>
46 47
<ul>
    <li>Windows XP
48 49 50 51 52 53 54
    </li><li>Sun JDK Version 1.4 and 1.6
    </li><li>Eclipse Version 3.3
    </li><li>Eclipse Plugins: Subclipse 1.2.4, EclEmma Java Code Coverage 1.3.0, Eclipse Checkstyle Plug-in 4.4.0
    </li><li>Mozilla Firefox 3.0
    </li><li>OpenOffice 3.0
    </li><li>NSIS 2.38 (Nullsoft Scriptable Install System)
    </li><li>Maven 2.0.7
55 56
    </li><li>YourKit Java Profiler
</li></ul>
57

58
<br /><a name="building"></a>
59
<h2>Building the Software</h2>
60
<p>
61
On the command line, go to the directory src and execute the following command:
62
</p>
63
<pre>
64
build -?
65
</pre>
66
<p>
67
You will get a list of targets. If you want to build the jar file, execute:
68
</p>
69
<pre>
70
build jar
71
</pre>
72
<p>
73 74
To create a jar file with the JDBC API and the classes required to connect to a server only,
use the target jarClient:
75
</p>
76
<pre>
77
build jarClient
78
</pre>
79
<p>
80
The other targets may be used as well.
81
</p>
82

83
<br /><a name="maven2"></a>
84
<h2>Using Maven 2</h2>
85
<h3>Using a Central Repository</h3>
86
<p>
87
You can include the database in your Maven 2 project as a dependency.
88
Example:
89
</p>
90 91 92 93
<pre>
&lt;dependency&gt;
    &lt;groupId&gt;com.h2database&lt;/groupId&gt;
    &lt;artifactId&gt;h2&lt;/artifactId&gt;
Thomas Mueller's avatar
Thomas Mueller committed
94
    &lt;version&gt;${version}&lt;/version&gt;
95 96
&lt;/dependency&gt;
</pre>
97
<p>
98
New versions of this database are first uploaded to http://hsql.sourceforge.net/m2-repo/ and then automatically
99 100
synchronized with the main maven repository; however after a new release it may take a few hours before
they are available there.
101
</p>
102 103

<h3>Using Snapshot Version</h3>
104
<p>
105
To build a 'snapshot' H2 .jar file and upload it the to the local Maven 2 repository, execute the following command:
106
</p>
107
<pre>
108
build mavenInstallLocal
109
</pre>
110
<p>
111
Afterwards, you can include the database in your Maven 2 project as a dependency:
112
</p>
113 114
<pre>
&lt;dependency&gt;
115
    &lt;groupId&gt;com.h2database&lt;/groupId&gt;
116 117 118 119 120
    &lt;artifactId&gt;h2&lt;/artifactId&gt;
    &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;
&lt;/dependency&gt;
</pre>

121 122 123 124 125 126 127 128 129 130 131
<br /><a name="translating"></a>
<h2>Translating</h2>
<p>
The translation of this software is split into the following parts:
</p>
<ul>
<li>H2 Console: src/main/org/h2/server/web/res/_text_*.properties
</li><li>Error messages: src/main/org/h2/res/_messages_*.properties
</li><li>Web site: src/docsrc/text/_docs_*.utf8.txt
</li></ul>
<p>
132
The conversion between UTF-8 and Java encoding (using the \u syntax), as well as the HTML entities (&amp;#..;)
133
is automated by running the tool PropertiesToUTF8. The web site translation is automated as well,
134
using <code>build docs</code>.
135 136
</p>

137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
<br /><a name="providing_patches"></a>
<h2>Providing Patches</h2>
<p>
If you like to provide patches, please consider the following guidelines to simplify merging them:
</p>
<ul><li>Only use Java 1.4 features (not use Java 1.5 or 1.6) (see Environment).
</li><li>Follow the coding style used in the project, use Checkstyle (see above) to check the coding style.
</li><li>Please provide test cases and integrate them into the test suite. 
	For Java level tests, see src/test/org/h2/test/TestAll.java.
	For SQL level tests, see src/test/org/h2/test/test.in.txt or testSimple.in.txt
</li><li>The test cases should cover at least 90% of the changed/new code; use a code coverage tool to verify that (see above).
</li><li>Verify that you did not break other features: Run the test cases by executing build test.
</li><li>Provide end user documentation if required (src/docsrc/html/*).
</li><li>Document grammar changes in src/main/org/h2/res/help.csv
</li><li>Provide a change log entry (src/docsrc/html/changelog.html).
</li><li>Submit patches as .patch files (compressed if big). To create a patch, use for example Eclipse Team/Create Patch.
</ul>

155
</div></td></tr></table><!-- analytics --></body></html>