p3 - building a corporate update site
DESCRIPTION
P3 is a new approach to synchronize Eclipse based development environment configurations across a team. It also enables to switch between different projects (that each require a different setup) immediately.TRANSCRIPT
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
ββ
P3 β Building a Corporate Update Site
JΓΆrg Reichert (itemis AG)
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
ββ
Integrierte Entwicklungs-Umgebung (IDE): Eclipse-Installation mit
Erweiterungen (plug-ins), die fΓΌr die Entwicklung der End-Anwendung(en)
benutzt werden (Assistenten, Compiler, Navigator, β¦)
Ziel-Plattform (Target Platform): Bibliotheken, die beim Schreiben des
Programm-Codes zur VerfΓΌgung stehen und gegen die der Kode kompiliert
wird
Konfigurations-Daten (Preferences): Konfiguration der Entwicklungs-
Umgebung und der installierten Erweiterungen, z.B., Code-Formatierung (z.B.
ZeilenlΓ€nge, UmbrΓΌche nach Klammern), Compiler Konfiguration)
Projekte-Auswahl (Team Project Sets): Relevanter Programm-Code, der aus
dem Versionskontrollsystem gezogen werden soll
Aufgaben-Verwaltung: Vorkonfiguration der Mylyn Task Repositories, um die
relevanten Aufgaben aus dem JIRA gefiltert zu bekommen
βAusstattungβ fΓΌr Entwickler-Teams, die mit Eclipse arbeiten
2
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
ββ 3
Projekt-Mitglieder
Ist-Zustand
Versionskontrollsystem, Web-Server, usw.
Manuelle Konfiguration
Richtlinien
Projekt-Leiter
IDE, Ziel-Plattform, Projekt-Auswahl, usw.
auf
nu
tze
n
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
4
Synchronisieren der Plug-ins: β’ Target und Plug-ins sind kompatibel, so dass es z.B. nicht zu Fehlern
bei Xtext kommt, wenn der Workflow aus der UI aufgerufen wird, die ein andere Plug-in Version benutzt als das Target, mit dem der Code kompiliert wird).
Motivation
Synchronisieren der PrΓ€ferenzen β’ einheitliche ZeilenlΓ€nge, damit SVN-Compare leichter ist, β’ einheitliche Checkstyle-Regeln
Synchronisieren des Targets: β’ einheitliche Code-Basis, gegen die der zu entwickelnde Code
kompiliert wird
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
ββ 5
Projekt-Mitglieder
p3
Versions-kontroll-system
Automatische Konfiguration
Projekt-Leiter
baut
P3 Profil auf
nu
tze
n
Integrations-Server
Web Server
ve
rΓΆffe
ntlic
ht
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
6
β’ auf dem zentralen Server gibt es einen Ordner der Ordner fΓΌr diverse Projekt enthΓ€lt, dieser Ordner enthΓ€lt auch eine sitemap.txt, die den Aufbau der Ordner beschreibt
β’ ein Projekt-Ordner enthΓ€lt immer die gleiche Ordner-Struktur
β’ das Master-Projekt definiert dabei die globale Vorlage fΓΌr β’ die Dokumentation β’ die Erweiterungen fΓΌr die Entwicklungsumgebung β’ die Ziel-Plattform β’ die Konfigurationen der Entwicklungsumgebung
β’ jedes neues Projekt definiert analog zum Master-Projekt die Ordner-
Struktur und kann selbst wieder Plug-ins, Target und Konfigurationen definieren. Bei manchen Projekten reicht es sogar, nur die Projekt-spezifische Dokumentation zusΓ€tzlich bereitzustellen, Plug-ins und Target kommen kΓΆnnen vom Master wieder verwendet werden.
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
sitemap.txt: Konfiguration der Profile und der Ordnerstruktur D:/profiles D:/profiles/ebs-example D:/profiles/ebs-tools D:/profiles/ebs-tools/target D:/profiles/ebs-tools/target/definitions D:/profiles/master D:/profiles/master/doc D:/profiles/master/doc/html D:/profiles/master/doc/images D:/profiles/master/doc/pdf D:/profiles/master/doc/updates D:/profiles/master/doc/updates/features D:/profiles/master/doc/updates/plugins D:/profiles/master/ide D:/profiles/master/ide/downloads D:/profiles/master/ide/preferences D:/profiles/master/ide/updates D:/profiles/master/ide/updates/3.7 D:/profiles/master/ide/updates/3.7/binary D:/profiles/master/ide/updates/3.7/features D:/profiles/master/ide/updates/3.7/plugins D:/profiles/master/target D:/profiles/master/target/definitions D:/profiles/master/target/updates D:/profiles/master/target/updates/3.7 D:/profiles/master/target/updates/3.7/binary D:/profiles/master/target/updates/3.7/features D:/profiles/master/target/updates/3.7/plugins D:/profiles/master/tools D:/profiles/master/tools/updates D:/profiles/master/tools/updates/features D:/profiles/master/tools/updates/plugins
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
Benutzer-Dokumentation in HTML, PDF und fΓΌr die Integration in Eclipse (Eclipse Help)
P3 Tools Update Site
Update Site gebaut aus Target
*.target-Datei
ebs-prefs.zip
Update Site, die eine minimale IDE mit den P3 Tools enthΓ€lt und aus der die EBS-IDE gebaut wird
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
Config.ini: org.eclipse.update.reconcile=false eclipse.p2.profile=DefaultProfile [email protected]/workspace osgi.framework=file\:plugins/org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar publicationServer=https\://username\:password@server-url/path/profiles equinox.use.ds=true eclipse.buildId= osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.200.v20110502-1955.jar@1\:start org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info eclipse.product=org.eclipse.sdk.ide osgi.splashPath=platform\:/base/plugins/org.eclipse.platform osgi.framework.extensions= eclipse.application=org.eclipse.ui.ide.workbench [email protected]/../p2 osgi.bundles.defaultStartLevel=4
Jeder Entwickler bekommt ein Paket aus β’ Eclipse-Installation β’ Maven β’ Java Development Kit (JDK) β’ Skripten
In der initialen minimalen Eclipse-Installation sind nur die P3 Werkzeuge installiert sowie der Pfad zum globalen Server konfiguriert.
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
Beim ersten Starten von Eclipse muss nun das Projekt ausgewΓ€hlt werden, in dem man arbeiten mΓΆchte.
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
Nach der Wahl des Projekts, wird Eclipse neu gestartet, um auf dem Profil zu arbeiten, welches dem Projekt entspricht. Beim Neustart werden die Plug-ins fΓΌr das Projekt in Eclipse installiert, die Target-Definition und die Konfigurationen heruntergeladen und angewendet. Nach einem weiteren Neustart sieht man an der Eclipse-OberflΓ€che die nun geladenen Erweiterungen. Zudem wurden die Entwicklungsprojekte in den Workspace geladen sowie die Mylyn Tasks eingerichtet und synchronisiert.
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
Bei jedem Eclipse-Neustart wird die lokale Eclipse-Instanz gegen den globalen Server synchronisiert. Alle Γnderungen auf dem Server werden lokale nachgezogen. So werden zum Beispiel auch Plug-ins deinstalliert, die nicht mehr auf dem Server vorkommen. Γber die Eclipse-Einstellungen ist es jederzeit mΓΆglich das Projekt zu wechseln.
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
Erstellen der Update Site
Zum Erstellen der gemeinsamen Update Site wird der B3 Aggregator verwendet (http://www.eclipse.org/modeling/emft/b3/). B3 stellt einen Editor zur VerfΓΌgung, um eine Update Site aus anderen Update-Sites bzw. aus Teilen deren Inhalte zu erstellen. Die so erstellte Update Site ist damit nicht mehr von der VerfΓΌgbarkeit der anderen Update-Sites abhΓ€ngig. AuΓerdem kΓΆnnen in ihr auch Plattform-spezifischen Features und Plug-ins aufgenommen werden, so dass sich zum Beispiel Eclipse-Instanzen fΓΌr verschiedene Betriebssystem (Windows, Linux) und Architekturen (32bit, 64bit) aus ihr bauen lassen. B3 kann auch ΓΌber Kommandozeile aufgerufen werden, so dass die aggregierte Update-Site auch in einem Build auf dem Integrations-Server gebaut werden kann.
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
ββ
schnelles Aufsetzen einer Entwicklungsumgebung fΓΌr ein neues Projekt-
Mitglied
Entwicklungsumgebung ist bei allen Entwicklern aktuell und konsistent
einzelne Projekte kΓΆnnen definiert von den Standard-Vorgaben
abweichen, indem sie eigene Profile definieren
IDE und Zielplattform basieren auf aggregierten Update-Sites, um deren
Konsistenz sich zentral gekΓΌmmert wird
Modularisierte Dokumentation: Projekte erhalten neben der globalen
Dokumentation auch jeweils eine Projekt-spezifische Konfiguration
Features
15
βββββββββββββββββββββββββββββββββββββ
β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β β
Β© itemis AG
itemis AG | Am Brambusch 15-24 | D-44536 LΓΌnen | www.itemis.de
JΓΆrg Reichert
itemis AG β Niederlassung Leipzig
0151 173 96 690