Project

General

Profile

Getting Started » History » Version 7

Hans-Martin Haase, 08/12/2015 08:04 AM

1 1 Johannes Schmölz
h1. Getting Started
2
3
This guide will give you a short briefing of how to get your development environment up and running within a few minutes.
4
5
6
h2. Basic Setup
7
8 4 Hans-Martin Haase
For the basic setup of your development environment you need to obtain the following tools and programs:
9 1 Johannes Schmölz
10 4 Hans-Martin Haase
* The "Java Development Kit":http://www.oracle.com/technetwork/java/javase/downloads/index.html (JDK) version 7 or higher
11 1 Johannes Schmölz
* A text editor or an IDE
12 4 Hans-Martin Haase
* "Maven":http://maven.apache.org/ version 3.0.5 or higher
13 1 Johannes Schmölz
* "Git":http://git-scm.com/
14 4 Hans-Martin Haase
* Optional the Android SDK if you want to help developing the Android client
15 1 Johannes Schmölz
16 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.
17 1 Johannes Schmölz
18
19
h3. Windows
20
21 2 Johannes Schmölz
# Download and install the "Java Development Kit":http://www.oracle.com/technetwork/java/javase/downloads/index.html
22 4 Hans-Martin Haase
Version 7 of the JDK is sufficient, but we strongly recommend to use the most recent version.
23 1 Johannes Schmölz
# Get an editor or an IDE of your choice and install it
24 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.
25 3 Johannes Schmölz
# Download and install the most recent version of "Maven":http://maven.apache.org/
26 2 Johannes Schmölz
# Download "Git":http://git-scm.com/.
27
There are different options available in order to use Git on Windows:
28 4 Hans-Martin Haase
* "Git Extensions":http://gitextensions.github.io/
29
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.
30
* "TortoiseGit":https://tortoisegit.org
31
TortoiseGit is a port of TortoiseSVN. For those familiar with TortoiseSVN, TortoiseGit is worth trying. It requires "MSysGit":http://msysgit.github.io/.
32
* "MSysGit":http://msysgit.github.io/
33 1 Johannes Schmölz
Git on the command line.
34 2 Johannes Schmölz
35 1 Johannes Schmölz
You are done!
36
37 3 Johannes Schmölz
38 1 Johannes Schmölz
h3. OS X
39
40 6 Hans-Martin Haase
# Download and install the "Java Development Kit":http://www.oracle.com/technetwork/java/javase/downloads/index.html
41
Version 7 of the JDK is sufficient, but we strongly recommend to use the most recent version.
42
# Get an editor or an IDE of your choice and install it.
43
Good IDEs for Java development are "NetBeans":http://www.netbeans.org/ and "Eclipse":http://www.eclipse.org/.
44 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.
45 1 Johannes Schmölz
46 4 Hans-Martin Haase
You are done!
47 1 Johannes Schmölz
48
h3. Linux
49
50 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).
51 3 Johannes Schmölz
52
# Install "OpenJDK":http://openjdk.java.net/
53
OpenJDK 7: @sudo aptitude install openjdk-7-jdk@
54 4 Hans-Martin Haase
OpenJDK 8: @sudo aptitude install openjdk-8-jdk@
55
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.
56 3 Johannes Schmölz
# Install an editor or an IDE of your choice
57
If you want to use a plain text editor, we recommend "Emacs":https://www.gnu.org/software/emacs/: @sudo aptitude install emacs@
58
"NetBeans":http://www.netbeans.org/: @sudo aptitude install netbeans@
59
"Eclipse":http://www.eclipse.org: @sudo aptitude install eclipse@
60
*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.
61
# Install "Maven":http://maven.apache.org/
62
@sudo aptitude install maven@
63
# Install "Git":http://git-scm.com/
64
@sudo aptitude install git@
65
66
You are done!
67 1 Johannes Schmölz
68
69
h2. Configuration
70
71 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.
72 1 Johannes Schmölz
73 5 Hans-Martin Haase
# Clone the repository
74
@git clone https://github.com/ecsec/open-ecard.git@
75
# Switch into the source directory
76
@cd open-ecard@
77
# Initialize and clone the BouncyCastle submodule 
78
@git submodule update --init@
79 1 Johannes Schmölz
80 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.
81
82 1 Johannes Schmölz
h2. Further Reading
83
84 5 Hans-Martin Haase
This section contains a collection of links to topics which are also relevant for the development process.
85
86
* [[code-style|Code Style Guideline]]: Information about code formatting, Javadoc creation.
87
* [[Repository Guidelines]]: Detailed information about the repository, their usage and commit rules.