View on GitHub

Software Engineering - HS 2024

Vorlesungswebseite für den Kurs Software Engineering der Universität Basel

Praktische Übung 1: Setup von JabRef

Administratives

Einführung

Für die meisten Übungen in diesem Kurs werden Sie das Open Source Projekt JabRef verwenden. In dieser ersten Übung werden Sie alle wichtigen Tools und die Entwicklungsumgebung aufsetzten, um im folgenden Änderungen und Erweiterungen im Code vornehmen zu können.

Benutzeraccount auf Github

Falls Sie noch keinen Benutzeraccount auf Github haben, erstellen Sie bitte einen. Teilen Sie uns Ihren Github Benutzernamen via E-Mail an marcel.luethi@unibas.ch mit, damit wir Ihnen Zugriff auf das Code-Repository geben können.

Auf Github ist dieser Benutzername sehr prominent und wird auch in der Projektkommunikation verwendet. Achten Sie deshalb bitte darauf, dass Sie einen Benutzernamen wählen, der professionelles Arbeiten zulässt. Gute Beispiele sind: andreasmeier oder andreas oder ameier. Beispiele von ungeeigneten Namen sind coderking, cookiemonster oder skaterboy.

Installation der Entwicklungswerkzeuge

Git

Installieren Sie das Versionsverwaltungswerkzeug Git, welches Sie auf der offiziellen Git Webseite herunterladen können.

Test der Installation

Öffnen Sie ein Terminal. Eingabe von

> git --version

sollte die Version von Git ausgeben, also z.B.

> git version 2.33.0.windows.1

Git Konfiguration

Als nächstes müssen Sie git noch mit ihrem Namen und Ihrer E-Mail Adresse konfigurieren. Öffnen Sie dazu ein Terminal und geben Sie folgendes ein:

git config --global user.name "Your Name"
git config --global user.email "youremail@yourdomain.com"

Nutzen Sie hierzu die E-Mail Adresse, die Sie auch für die Erzeugung vom Github Account verwendet haben.

Einrichten von SSH zur sicheren Kommunikation zwischen git und github

Um via Git auf ihr Github repository zugreifen zu können, müssen Sie ssh (secure shell) einrichten. Bitte konsultieren Sie dazu die Github Dokumentation, welche diesen Schritt für die drei wichtigen Betriebssysteme (Windows, Linux und MacOS) detailliert beschreibt.

Falls Sie Probleme haben SSH einzurichten, können Sie alternativ auch ein Access Token erstellen und mit diesem Arbeiten. Eine Anleitung dazu finden Sie hier.

Installieren von Java

Für die Entwicklung von JabRef nutzen wir Java in der Version 21. Wir empfehlen Ihnen die Version von Eclipse Temurin, die Sie hier herunterladen können.

– Um zu überprüfen ob Java korrekt auf Ihrem System verfügbar ist, öffnen Sie ein Terminal, und setzen die Umgebungsvariable JAVA_HOME und PATH auf das neu installierte JDK.

Unter Windows (Powershell) machen Sie das wie folgt:

$env:JAVA_HOME="C:\Program Files\Eclipse Adoptium\jdk-21.0.4.7-hotspot"
$env:PATH="$env:JAVA_HOME\bin;$env:PATH" 

Achtung: Der Pfad kann sich je nach Version unterscheiden. Bitte passen Sie den Pfad entsprechend an.

Unter MacOS sollte das folgende Kommando funktionieren:

export "JAVA_HOME=$(/usr/libexec/java_home)"
export "PATH=$JAVA_HOME/bin:$PATH"

und unter Linux setzen Sie diese Variablen wie folgt:

export JAVA_HOME=PFAD_ZU_IHRER_JAVA_21_INSTALLATION
export “PATH=$JAVA_HOME/bin:$PATH”

Danach starten Sie ein neues Terminal und geben folgendes Kommando ein:

 java -version

Die Ausgabe sollte ungefähr wie folgt aussehen:

openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)

Anmerkung: Das Buildsystem Gradle, welches wir für das Kompilieren und Ausführen von JabRef verwenden, nutzt die Umgebungsvariable JAVA_HOME um das JDK zu finden. Diese Umgebungsvariable muss also immer richtig gesetzt sein, wenn Sie JabRef aus einem Terminal kompilieren oder ausführen wollen.

Anmerkung 2: Beim Setzen der Umgebungsvariable wird diese für laufende Prozesse nicht unmittelbar aktualisiert, deshalb müssen Sie Prozesse wie zum Beispiel die PowerShell neu starten um Änderungen in der Java-Version zu sehen.

JabRef

Nachdem wir nun alle Werkzeuge installiert haben, müssen wir noch das JabRef Projekt herunterladen. Dies geschieht via Github.

Forken des Github Repositories

In diesem Kurs arbeiten wir nicht mit dem offiziellen JabRef Code Repository, sondern mit einem privaten Fork. Damit sind ihre Änderungen und unsere Bemerkungen für die Öffentlichkeit nicht zugänglich. Damit Sie auf unseren Fork von JabRef zugreifen können, müssen wir Ihnen Zugriff auf dieses Repository geben. Sie können überprüfen ob Sie Zugriff haben indem Sie auf https://github.com/unibas-marcelluethi/jabref gehen. Falls Sie bereits Zugriff haben, sollte die Seite etwa wie folgt aussehen: image

Nun erstellen Sie, ausgehend von unserem privaten Fork, ihren eigenen privaten Fork. Dazu klicken Sie oben rechts auf den “Fork” Button. Nach erfolgreichem Fork landen Sie nun auf Ihrer persönlichen Kopie des Projekts auf Github, mit der Sie von nun an arbeiten werden.

Zugriffsrechte für Assistenten

Damit unsere Assistenten Ihre Abgaben anschauen können, müssen Sie diesen noch Zugriffsrechte auf ihr neues Repository geben. Dafür gehen Sie auf Settings und dann Manage access: github-manage-access

Klicken Sie dann auf Add people und fügen Sie fabiandudler, Giovvvvva und josphstar hinzu. github-manage-access

Als Rolle im nachfolgenden Dialog wählen Sie Write.

Klonen des Projekts

Damit Sie an dem Projekt arbeiten können müssen Sie das Repository noch auf Ihren eigenen Computer bringen (d.h. das Repository “klonen”). Drücken Sie den grünen Button mit Namen “Code”, wählen Sie SSH und und kopieren Sie die URL. (Anmerkung: Falls Sie statt mit SSH mit einem Access-token arbeiten, müssen Sie an dieser Stelle statt SSH HTTPS wählen).

Öffnen Sie eine Konsole, wechseln Sie in ihr gewünschtes Arbeitsverzeichnis und geben Sie folgendes ein:

git clone THE_URL_FOR_YOUR_PROJECT JabRef

Warnung: Das Arbeitsverzeichnis darf nicht auf einem synchronisiert Drive sein. Dies führt zum einen zu Problemen mit JabRef selbst, vor allem aber auch mit git.

Kompilieren des Projekts von der Kommandozeile

Bevor Sie das Projekt in der IDE bearbeiten, versuchen Sie es zuerst von der Kommandozeile zu kompilieren und auszuführen.

Dazu wechseln Sie zuerst in das Verzeichnis jabref:

cd jabref

Dann führen Sie folgende Kommandos aus (unter Linux und MacOS muss .\ durch ./ ersetzt werden):

.\gradlew compileJava

Mit dem Befehl

.\gradlew run

können Sie das Projekt dann starten.

Wenn Sie nun das JabRef Programm sehen, dann konnten Sie ihr Projekt erfolgreich kompilieren und ausführen. Herzlichen Glückwunsch! Sie werden in der Praxis aber nie direkt mit Gradle arbeiten, sondern meist über die IDE. Falls aber mal etwas nicht funktioniert (was bei so einem so grossen Projekt immer mal wieder vorkommt), können Sie mit diesen Kommandos von der Kommandozeile aus das Projekt bauen und ausführen, und so herausfinden, ob das Problem bei der IDE liegt.

Öffnen des Projekts in der IDE

IntelliJ Idea

Installieren Sie die Entwicklungsumgebung IntelliJ IDEA. Informationen zu Download und Installation finden Sie auf der Seite von JetBrains.

Bemerkung 1: Wir arbeiten in diesem Kurs mit der Community Edition, die als Open Source uneingeschränkt zugänglich ist.

Folgen Sie dann der Anleitung Setup a local workspace in der JabRef Development Documentation. Die ersten 3 Schritte, die mit Pre condition beginnen, können Sie überspringen, da Sie diese bereits erfüllt haben.

Ausführen des Projekts aus der IDE

Um JabRef aus der IDE zu starten öffnen Sie das Gradle Fenster und starten die Gradle Task jabref [run] indem Sie diese Doppelklicken (siehe Screenshot). Gradle-run

Wenn alles funktioniert hat, sollte nun JabRef erfolgreich aus der IDE gestartet werden können.

Alles erfolgreich installiert?

Sie können uns Ihren Erfolg gerne im Diskussionforum mitteilen.