TV-Browser mit Eclipse bauen

Aus TV-Browser Wiki
Version vom 9. März 2015, 13:18 Uhr von Ds10⧼word-separator⧽⧼parentheses⧽ ⧼parentheses⧽
⧼revision-nav⧽
Wechseln zu: Navigation⧼comma-separator⧽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.

TV-Browser bauen

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.

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.

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.

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%20components.p2f an.

TV-Browser-Code aus dem SVN holen

Danach kannst du den TV-Browser-Quellcode aus dem Repository holen. Dazu geh auf "File" -> "New" -> "Other" und wähle unter "SVN" "Checkout Project from SVN".

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

Jetzt wähle "Create a new repository location". Als URL gib https://svn.code.sf.net/p/tvbrowser/code/ ein. Markiere im neu angelegten Repository das Unterverzeichnis "trunk"->"tvbrowser" und beende den Dialog mit einem Klick auf "Finish".

Java-Projekt anlegen

Im neu erscheinenden Dialog zum Anlegen eines Projektes wähle "Java Project". Gib dem Projekt einen sinnvollen Namen wie "TV-Browser". 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, dann benutze "Use a specific execution environment" und stelle Java 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 "Finish".

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.

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..." 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.

Das Ticket-System

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

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.

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:

  • Kopier einmal die plugin.jar in das Plugin-Verzeichnis.
  • Bearbeite die Launch Configuration, die beim Erstellen des TV-Browsers angelegt hast und füge bei Classpath alle Plugin-Projekte hinzu. Füge auch bei Sources alle Plugin-Projekte hinzu.
  • 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.

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!