Project

General

Profile

Getting Started » History » Version 8

Hans-Martin Haase, 08/12/2015 08:07 AM
Add table of content.

1 8 Hans-Martin Haase
{{toc}}
2
3 1 Johannes Schmölz
h1. Getting Started
4
5
This guide will give you a short briefing of how to get your development environment up and running within a few minutes.
6
7
8
h2. Basic Setup
9
10 4 Hans-Martin Haase
For the basic setup of your development environment you need to obtain the following tools and programs:
11 1 Johannes Schmölz
12 4 Hans-Martin Haase
* The "Java Development Kit":http://www.oracle.com/technetwork/java/javase/downloads/index.html (JDK) version 7 or higher
13 1 Johannes Schmölz
* A text editor or an IDE
14 4 Hans-Martin Haase
* "Maven":http://maven.apache.org/ version 3.0.5 or higher
15 1 Johannes Schmölz
* "Git":http://git-scm.com/
16 4 Hans-Martin Haase
* Optional the Android SDK if you want to help developing the Android client
17 1 Johannes Schmölz
18 2 Johannes Schmölz
Since the setup process of the development environment is dependent on the operating system used, you will find the instructions for different systems (Windows, OS X and Linux) below.
19 1 Johannes Schmölz
20
21
h3. Windows
22
23 2 Johannes Schmölz
# Download and install the "Java Development Kit":http://www.oracle.com/technetwork/java/javase/downloads/index.html
24 4 Hans-Martin Haase
Version 7 of the JDK is sufficient, but we strongly recommend to use the most recent version.
25 1 Johannes Schmölz
# Get an editor or an IDE of your choice and install it
26 2 Johannes Schmölz
Good IDEs for Java development are "NetBeans":http://www.netbeans.org/ and "Eclipse":http://www.eclipse.org/. If you prefer a pure text editor, "Notepad++":http://notepad-plus-plus.org/ is worth trying.
27 3 Johannes Schmölz
# Download and install the most recent version of "Maven":http://maven.apache.org/
28 2 Johannes Schmölz
# Download "Git":http://git-scm.com/.
29
There are different options available in order to use Git on Windows:
30 4 Hans-Martin Haase
* "Git Extensions":http://gitextensions.github.io/
31
Git Extensions is a graphical user interface for Git, that comes with Windows Explorer integration. It is based on "MSysGit":http://msysgit.github.io/. Our recommendation for Windows users.
32
* "TortoiseGit":https://tortoisegit.org
33
TortoiseGit is a port of TortoiseSVN. For those familiar with TortoiseSVN, TortoiseGit is worth trying. It requires "MSysGit":http://msysgit.github.io/.
34
* "MSysGit":http://msysgit.github.io/
35 1 Johannes Schmölz
Git on the command line.
36 2 Johannes Schmölz
37 1 Johannes Schmölz
You are done!
38
39 3 Johannes Schmölz
40 1 Johannes Schmölz
h3. OS X
41
42 6 Hans-Martin Haase
# Download and install the "Java Development Kit":http://www.oracle.com/technetwork/java/javase/downloads/index.html
43
Version 7 of the JDK is sufficient, but we strongly recommend to use the most recent version.
44
# Get an editor or an IDE of your choice and install it.
45
Good IDEs for Java development are "NetBeans":http://www.netbeans.org/ and "Eclipse":http://www.eclipse.org/.
46 7 Hans-Martin Haase
# Download and install Git and Maven. We recommend to use "homebrew":http://homebrew.sh to install the latest version of both. *Note:* You probably have to adjust your PATH variable if you have already installed a version from the AppStore.
47 1 Johannes Schmölz
48 4 Hans-Martin Haase
You are done!
49 1 Johannes Schmölz
50
h3. Linux
51
52 4 Hans-Martin Haase
On Linux you can use your system's package manager to install all required tools and programs. Below you will find the commands to do so, based on "aptitude":http://packages.debian.org/aptitude, a front-end for "Debian's":http://www.debian.org "Advanced Package Tool":http://wiki.debian.org/Apt (APT).
53 3 Johannes Schmölz
54
# Install "OpenJDK":http://openjdk.java.net/
55
OpenJDK 7: @sudo aptitude install openjdk-7-jdk@
56 4 Hans-Martin Haase
OpenJDK 8: @sudo aptitude install openjdk-8-jdk@
57
If you prefer the Oracle JDK, you have to download and install it manually. You can get it from "here":http://www.oracle.com/technetwork/java/javase/downloads/index.html.
58 3 Johannes Schmölz
# Install an editor or an IDE of your choice
59
If you want to use a plain text editor, we recommend "Emacs":https://www.gnu.org/software/emacs/: @sudo aptitude install emacs@
60
"NetBeans":http://www.netbeans.org/: @sudo aptitude install netbeans@
61
"Eclipse":http://www.eclipse.org: @sudo aptitude install eclipse@
62
*Note:* If you want to use the most recent version of "NetBeans":http://www.netbeans.org/ or "Eclipse":http://www.eclipse.org, which is recommended, you should obtain the installer packages from the official websites and perform a manual installation.
63
# Install "Maven":http://maven.apache.org/
64
@sudo aptitude install maven@
65
# Install "Git":http://git-scm.com/
66
@sudo aptitude install git@
67
68
You are done!
69 1 Johannes Schmölz
70
71
h2. Configuration
72
73 5 Hans-Martin Haase
In order to get started with the development we need the code to work with. The public repository with the source code is located at https://github.com/ecsec/open-ecard which needs to be cloned. How to clone a repository depends on the git integration in the used IDE or editor. The general process on the command line is as follows and should be the same on all platforms.
74 1 Johannes Schmölz
75 5 Hans-Martin Haase
# Clone the repository
76
@git clone https://github.com/ecsec/open-ecard.git@
77
# Switch into the source directory
78
@cd open-ecard@
79
# Initialize and clone the BouncyCastle submodule 
80
@git submodule update --init@
81 1 Johannes Schmölz
82 5 Hans-Martin Haase
You may now open the project in your preferred IDE or editor and start developing but be sure to have read the necessary documents regarding the development and contributions to the project.
83
84 1 Johannes Schmölz
h2. Further Reading
85
86 5 Hans-Martin Haase
This section contains a collection of links to topics which are also relevant for the development process.
87
88
* [[code-style|Code Style Guideline]]: Information about code formatting, Javadoc creation.
89
* [[Repository Guidelines]]: Detailed information about the repository, their usage and commit rules.