TV-Browser mit Eclipse bauen

Aus TV-Browser Wiki

Wechseln zu: Navigation, Suche

Diese Anleitung beschreibt, wie man TV-Browser in Eclipse entwickeln, compilieren und debuggen kann. Eine Alternative dazu ist das Bauen auf der Kommandozeile, das wir aber nicht empfehlen. In den folgenden Abschnitten wird dir erklärt, was du wofür brauchst und wie du es machen musst.

Inhaltsverzeichnis

[bearbeiten] TV-Browser bauen

[bearbeiten] Java 1.6 installieren

Damit man überhaupt irgendwas mit dem TV-Browser tun kann, muss Java 1.6 (oder höher) installiert sein). Wir unterstützen prinzipiell nur Sun Java und das OpenJDK. Du kannst Java von Sun herunterladen: http://java.sun.com/javase/downloads/index.jsp Installiere dabei nach Möglichkeit ein "Java SDK" (oder "JDK"). Im Gegensatz zu einer "JRE" sind dabei auch die Quelltexte von Java selbst enthalten, die das Debuggen sehr viel angenehmer machen.

[bearbeiten] Eclipse installieren

Eclipse ist die von uns favorisierte Entwicklungsumgebung. Lade von http://www.eclipse.org/downloads/ ein für dein Betriebssystem passendes Package. Falls dich die Auswahl verwirrt: Zumindest die Java-Unterstützung muss bei deinem Paket namentlich dabei sein.

[bearbeiten] Workspace anlegen

Wenn du Eclipse startest, fragt es dich nach einem Workspace. Lege einen neuen Workspace an (z.B. "workspace-tvbrowser"), damit du den TV-Browser nicht mit anderen Projekten durcheinander wirfst. Stelle dann nach dem Eclipse-Start unter Preferences->General->Workspace->Text file encoding die Kodierung "UTF-8" ein. Sonst bekommen wir Probleme mit der Kodierung von Sonderzeichen.

[bearbeiten] Eclipse-Plugins installieren

Für die TV-Browser-Entwicklung werden einige zusätzliche Plugins benötigt. Für die Installation muss Eclipse wahrscheinlich mit Admin-Rechten laufen. Benutze File->Import->Install->Installation items from File und gib als Datei eine lokal heruntergeladene Kopie von http://svn.code.sf.net/p/tvbrowser/code/trunk/tvbrowser/development/TV-Browser%20Eclipse%20Luna%20Minimum%20components.p2f an.

[bearbeiten] TV-Browser-Code aus dem SVN holen

Danach kannst du den TV-Browser-Quellcode aus dem Repository holen. Dazu geh auf "Window" -> "Open Perspective" -> "Other" und wähle dort "SVN Repository Exploring". Nun öffnet sich ein Fenster, in dem alle verfügbaren Repositories anzeigt werden. Dort klickst du dann auf den Button mit dem grünen Pluszeichen (Tool-Tipp; New Repository Location). Anschließend gibst du als "URL" https://svn.code.sf.net/p/tvbrowser/code/ ein und klickst auf "Finish".

Wenn es den Eintrag SVN Repository Exploring in der Projektauswahl bei dir nicht gibt, hast du das Subversive-Plugin nicht installiert. Schau nochmal weiter oben nach.

Danach hast du das Repository von TV-Browser dauerhaft verfügbar und kannst jetzt dieses Repository einsehen. In diesem Repository kannst du nun das Unterverzeichnis "trunk" öffnen und dann mit rechts auf den Ordner "tvbrowser" klicken.

[bearbeiten] Java-Projekt anlegen

Dort wählst Du "Find/Check Out As...", In dem Fenster, das sich nun öffnet, mußt du nichts einstellen. Dort sollte standardmäßig die Option "Check out as a project configured using the New Project Wizard" gesetzt sein, Falls dies nicht der Fall ist, mußt Du diese setzen. Nach einem Klick auf "Finish" wird gefragt, welche Art Projekt erstellt werden sollen, Hier wählst Du "Java" -> "Java Project", Dort musst du dann einmal auf "Next" klicken und einen sinnvollen Namen für das Projekt (z. B. "TV-Browser") vergeben.

Prüfe die Einstellung "JRE" in diesem Dialog. TV-Browser muss für Java 6 compiliert werden. Wenn also eine JRE mit einer Version kleiner als Java 6 ausgewählt ist, so benutze das Auswahlfeld "Use a specific execution environment" und stelle dort Java 6 (Java SE 1.6) ein.

Achtung: Wenn du auch Code ändern willst, dann benutze nach Möglichkeit auch keine JRE mit einer höheren Version als Java 6. Es kann sonst passieren, dass du Methoden in deinem Quellcode verwendest, die erst in höheren Java-Versionen vorhanden sind. Beim Entwickeln führt das dann nicht zu Compilierfehlern, aber zur Laufzeit gibt es dann eine Exception.

Bei "Project layout" wähle "Create separate source and output folders" und beende den Dialog mit einem Kick auf "Finish". Nun wird der TV-Browser-Quellcode geladen

[bearbeiten] Betriebssystemspezifischen Code ausschließen

Jetzt braucht der Computer eine Weile, um alles herunterzuladen. Wenn er fertig ist, wird er sehr viele Compilerfehler anzeigen, da die Projektorganisation noch nicht vollständig ist. Markiere die *.jar-Bibliotheken im Unterverzeichnis "lib", und wähle im Kontextmenü "Add to build path".

Nach dem (automatischen) erneuten Übersetzen des Projektes sind nur noch wenige Fehlermeldungen vorhanden. Sie beziehen sich alle auf Plugins und Quellcode, die betriebssystemspezifische Anteile enthalten (z.B. für MacOS), die unter deinem eigenen Betriebssystem nicht übersetzt werden können. Falls dich die Fehlermeldungen stören, schließe einfach ein paar Plug-ins aus dem src-Verzeichnis aus. Dazu kannst du im Projektnavigator jeden Ordner (z.B. tvbrowser.ui.mainframe.macos) einzeln im Kontextmenü über "Build Path" -> "Exclude" ausschließen.

[bearbeiten] Starten und Debuggen

Du hast jetzt ausführbaren Code. Der TV-Browser benötigt zum Starten aber noch zusätzliche Dateien wie Bilder und Icons. Am einfachsten ist es, wenn du das vorhandene Installationsverzeichnis des TV-Browsers auf der Festplatte einmal komplett kopierst (zum Beispiel unter "TV-Browser development").

Zum Starten innerhalb von Eclipse legst du eine Launch Configuration an. Benutze dazu "Run As" -> "Run Configurations" aus dem Kontextmenü des Projektes. Lege beim Punkt "Java Application" per Klick auf den "New"-Button eine neue Konfiguration an, bei der du folgende Werte ergänzen musst:

  • Seite "Main"
    • Main class: tvbrowser.TVBrowser
  • Seite "Arguments"
    • VM arguments: -Dpropertiesfile=windows.properties
    • Workspace directory: "Other" -> "File system" -> Pfad zum vorhin kopierten Verzeichnis

Mit einem Klick auf "Run" sollte der TV-Browser jetzt starten. Zum Debuggen kann die gleiche Launch Configuration benutzt werden, es muss nur "Debug" aus dem Kontextmenü des Projektes benutzt werden.

[bearbeiten] SVN-Update der lokalen Arbeitskopie des Quellcodes

Die lokale Arbeitskopie des Quellcodes kann durch ein SVN-Update aktualisiert werden. Hierfür machst du einen Rechtsklick auf das TV-Browser-Projekt und startest anschließend über "Team" - > "Update" das Update.

[bearbeiten] Den TV-Browser bauen

Wenn du TV-Browser bauen möchtest, musst du mit der rechten Maustaste auf die "build.xml" klicken und "Run as" -> "2 Ant Build..." auswählen. Dort musst du dann ein passendes Ziel auswählen (z.B. public-transportable). Mit einem Klick auf "Run" startest du den Build-Prozeß.

[bearbeiten] Das Ticket-System

Die Fehlerreports zum TV-Browser können komplett über eine Web-Oberfläche bearbeitet werden: Bugtracker

[bearbeiten] TV-Browser-Plugins

Das Repository enthält außerdem eine ganze Menge Plugin-Projekte, in welchen die optionalen (d.h. von uns nicht mit ausgelieferten) Plugins bzw. ihr Quellcode zu finden sind. Diese werden komplett über Maven verwaltet. Um sie in deinen Workspace zu bekommen, wähle File->Import->Maven->Checkout from SCM. Im folgenden Dialog trage "svn" und https://svn.code.sf.net/p/tvbrowser/code/trunk/tvbrowser-plugins ein. Bestätige den Dialog. Nach einer Weile zeigt dir Maven alle gefundenen Plugins an, die per Klick auschecken und anlegen lassen kannst. Maven sucht danach auch alle notwendigen Bibliotheken zusammen. Deshalb solltest du am Ende lauter lauffähige Plugins haben.

Leider musst du jetzt noch bei jedem einzelnen Plugin-Projekt in den Eigenschaften des Projekts die Kodierung auf "UTF-8" umstellen, damit auch alle Sonderzeichen korrekt sind.

Um Plugins builden zu können, ist es eventuell erforderlich, Eclipse mit dem Argument -vm "[Pfad zu Java]\jdk\bin" zu starten.

[bearbeiten] Plugin-Code direkt im TV-Browser nutzen

Wenn du jetzt an Plugins arbeitest, ist es viel zu umständlich, nach jeder Änderung eine jar-Datei zu bauen und in das plugin-Verzeichnis des TV-Browser zu kopieren. Deshalb mach folgendes:

  • Kopiere einmal die plugin.jar in das Plugin-Verzeichnis.
  • Plugin-Quellcode in das TV-Browser Projekt einbinden:
    • Im Fall dass du ein neues Plugin schreibst, lege im src-Verzeichnis ein Paket mit dem Namen deines Plugins an (Paketnamen klein schreiben), die Plugin-Klasse erstellt man dann innerhalb dieses Pakets.
    • Im Fall dass du Änderungen an einem vorhandenen Plugin vornehmen möchtest, bearbeite die Launch Configuration, die du beim Erstellen des TV-Browsers angelegt hast und füge bei Classpath das Plugin-Projekt hinzu, das du bearbeiten möchtest. Füge dieses auch bei Sources hinzu.
  • Starte und Debugge jetzt einfach immer mit der Launch Configuration für den TV-Browser. Dabei wird automatisch auch der aktuelle Code aus den Plugin-Projekten verwendet.

[bearbeiten] Ein Plugin bauen

Ein Plugin-Paket (.jar) kann mit einem Rechtsklick auf den Ordner des Plugins unter src und anschließend über "Export" -> "Java" -> "JAR file" erstellt werden. Dort muß lediglich der Name und der Pfad zur .jar-Datei eingegeben und zusätzlich die Optionen "Export generated class files and resources" und "Export Java source files and resources" (gemäß GPL) aktiviert werden. Mit einem Klick auf "Finish" kann der Vorgang abgeschlossen werden.

[bearbeiten] Weitere empfohlene Plugins

Die folgenden Plugins sollten bei Arbeiten am TV-Browser ebenfalls installiert sein, da sie das Leben erleichtern:

  • RessourceBundleEditor zum einfacheren Bearbeiten der Übersetzungsdateien (zeigt englische und deutsche Übersetzungen zusammen und nach Schlüsseln sortiert an, obwohl die Übersetzungen ja eigentlich in verschiedenen Dateien stecken)
  • FindBugs: entdeckt typische Fehlermuster im Code, die man als Entwickler immer fixen sollte.
  • PMD: eine weitere statisches Codeanalyse; findet noch mehr potentielle Probleme im Code, hat dafür aber auch viele falsch positive (d.h. mit Vorsicht zu genießen)
  • Unnecessary code detector: kann nicht mehr verwendeten public Code entdecken. Vorsicht bei allen tool- und util- Klassen!
Persönliche Werkzeuge