p3 - building a corporate update site

16
โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— ยฉ itemis AG โ— โ— P3 โ€“ Building a Corporate Update Site Jรถrg Reichert (itemis AG)

Upload: joergreichert

Post on 27-Jun-2015

103 views

Category:

Technology


1 download

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

Page 1: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ itemis AG

โ—โ—

P3 โ€“ Building a Corporate Update Site

Jรถrg Reichert (itemis AG)

Page 2: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 3: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 4: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 5: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 6: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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.

Page 7: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 8: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 9: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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.

Page 10: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ itemis AG

Beim ersten Starten von Eclipse muss nun das Projekt ausgewรคhlt werden, in dem man arbeiten mรถchte.

Page 11: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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.

Page 12: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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.

Page 13: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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.

Page 14: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ itemis AG

Page 15: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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

Page 16: P3 - Building a corporate update site

โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—โ—

โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ— โ—

ยฉ 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