O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Konfigurationsmanagement mit Subversion, Maven und Redmine

Book Description

  • Beschreibt den kompletten KM-Prozess und seine Organisation, nicht nur die Werkzeuge+ Hat sich in den drei Vorauflagen zum Standardwerk in deutscher Sprache entwickelt.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsverzeichnis
  5. 1 Einleitung
    1. 1.1 Wer dieses Buch lesen sollte
    2. 1.2 Warum Subversion, Maven und Redmine?
    3. 1.3 Abgrenzung und Begriffserläuterungen
    4. 1.4 Aufbau des Buches
    5. 1.5 Beispielprojekt e2etrace
    6. 1.6 Konventionen
    7. 1.7 Webseite zum Buch
    8. 1.8 Danksagung
  6. 2 Einführung in das Konfigurationsmanagement
    1. 2.1 Was ist Konfigurationsmanagement?
      1. 2.1.1 Ziele des Konfigurationsmanagements
        1. Änderungen kontrollieren
        2. Qualität sicherstellen
        3. Produktivität steigern
        4. Transparenz verbessern
      2. 2.1.2 Argumente für den Einsatz im Projekt
      3. 2.1.3 Normen und Standards
    2. 2.2 Aufgaben und Verfahren des Kernprozesses
      1. 2.2.1 Auswahl der Konfigurationselemente
        1. Eindeutige Konfigurationselemente
        2. Mögliche Konfigurationselemente
        3. Keine Konfigurationselemente
      2. 2.2.2 Erstellung des Konfigurationsmanagement-Handbuches
        1. Notwendigkeit des KM-Handbuches
        2. Gliederung des KM-Handbuches
      3. 2.2.3 Beschreibung der Konfigurationselemente
      4. 2.2.4 Festlegung der Projektstruktur
        1. Einfluss der Projektorganisation
        2. Einfluss der Softwarearchitektur
        3. Technische Einflussfaktoren
      5. 2.2.5 Verwaltung der Konfigurationselemente
        1. Repository
        2. Versionen und Deltas
        3. Check-out und Check-in
        4. Parallele Änderungen an Dateien
        5. Tags und Baselines
        6. Branches
      6. 2.2.6 Projektautomatisierung
        1. Aufbau eines Build-Prozesses
        2. Varianten des Build-Prozesses im Projekt
        3. Umsetzung des Build-Prozesses
      7. 2.2.7 Änderungs- und Fehlermanagement
        1. Aufsetzpunkte im Projekt
        2. Aufgaben des Änderungsmanagements
        3. Prinzipielle Vorgehensweise
        4. Inhalt eines CR
        5. Werkzeuge zum Änderungs- und Fehlermanagement
        6. Etablierung eines Änderungsmanagers
    3. 2.3 Erweiterter Prozess
      1. 2.3.1 Releasemanagement
        1. Beschreibung der Releases
        2. Planung der Releases
      2. 2.3.2 Audits
        1. Durchführung von Audits
      3. 2.3.3 Metriken
        1. Sinnvolle und sinnlose Metriken
        2. Manuell ermittelte Metriken
        3. Automatisierte Metriken
        4. Auswahl geeigneter automatisierter Metriken
        5. Psychologische Konsequenzen im Projekt
      4. 2.3.4 Berichte
  7. 3 Konfigurationsmanagement-Werkzeuge
    1. 3.1 Subversion
      1. 3.1.1 Funktionsumfang
      2. 3.1.2 Architektur
        1. Verfügbare Servervarianten
      3. 3.1.3 Bezugsquelle und Installation
      4. 3.1.4 Dokumentation
    2. 3.2 Maven
      1. 3.2.1 Funktionsumfang
      2. 3.2.2 Architektur
      3. 3.2.3 Bezugsquelle und Installation
      4. 3.2.4 Dokumentation
    3. 3.3 Redmine
      1. 3.3.1 Funktionsumfang
      2. 3.3.2 Architektur
      3. 3.3.3 Bezugsquelle und Installation
      4. 3.3.4 Dokumentation
    4. 3.4 Nexus
      1. 3.4.1 Funktionsumfang
      2. 3.4.2 Architektur
      3. 3.4.3 Bezugsquelle und Installation
      4. 3.4.4 Dokumentation
    5. 3.5 Hudson
      1. 3.5.1 Funktionsumfang
      2. 3.5.2 Bezugsquelle und Installation
      3. 3.5.3 Dokumentation
    6. 3.6 Weitere Werkzeuge und Frameworks
  8. 4 Verwaltung der Konfigurationselemente mit Subversion
    1. 4.1 Einrichten des Repositorys
      1. 4.1.1 Arbeitsweise des Repositorys
      2. 4.1.2 Erstellung eines Repositorys
      3. 4.1.3 Benutzer und Zugriffsrechte festlegen
      4. 4.1.4 Zugriff auf das Repository
    2. 4.2 Projektstruktur und Konfiguration festlegen
      1. 4.2.1 Einfluss des Releaseplans
      2. 4.2.2 Vorbereitung der Tags und Branches
      3. 4.2.3 Festlegung der detaillierten Struktur
      4. 4.2.4 Konfiguration des Clients
        1. Subversion Properties
        2. Lokale Konfigurationsdatei
      5. 4.2.5 Anlegen der Struktur im Repository
      6. 4.2.6 Check-out des Arbeitsbereiches
    3. 4.3 Durchführen von Änderungen
      1. 4.3.1 Arbeitsbereich aktualisieren
      2. 4.3.2 Dateien ändern
      3. 4.3.3 Änderungen rückgängig machen
      4. 4.3.4 Elemente hinzufügen
      5. 4.3.5 Elemente löschen
      6. 4.3.6 Elemente kopieren
        1. Kopieren einer Datei
        2. Wiederherstellen gelöschter Elemente
      7. 4.3.7 Elemente verschieben und umbenennen
      8. 4.3.8 Änderungen überprüfen
        1. Änderungen anderer Teammitglieder ermitteln
        2. Änderungen in einer Datei überprüfen
      9. 4.3.9 Änderungen in das Repository schreiben
        1. Fehlerhafte commits
        2. Inhalt des neuen Changesets
    4. 4.4 Arbeiten mit der Versionshistorie
      1. 4.4.1 Abfrage der Versionshistorie
        1. Mixed Revisions
        2. Ausführliche Versionshistorie
        3. Einschränken der Ausgabe
      2. 4.4.2 Auswählen einer Revision
      3. 4.4.3 Verwendung von Peg-Revisions
      4. 4.4.4 Unterschiede zwischen Versionen ermitteln
        1. Dateiinhalte vergleichen
        2. Komplette Verzeichnisbäume vergleichen
      5. 4.4.5 Unterschiede in der Projektstruktur ermitteln
        1. Änderungen zeilenweise verfolgen
    5. 4.5 Umgang mit Konflikten
      1. 4.5.1 Entstehung von Konflikten
      2. 4.5.2 Automatische Auflösung einfacher Konflikte
      3. 4.5.3 Behebung von echten Konflikten
        1. Interaktive Auflösung von Konflikten
        2. Manuelle Auflösung von Konflikten
    6. 4.6 Verwaltung binärer Dateien
      1. 4.6.1 Was sind binäre Dateien?
        1. Überprüfung des Dateityps
        2. Weitere Befehle zum Umgang mit Properties
      2. 4.6.2 Konflikte in binären Dateien
        1. Einführung einer »künstlichen« Binärdatei
        2. Entstehung des Konflikts
        3. Auflösung des Konflikts
      3. 4.6.3 Vermeidung von Konflikten
        1. Dateien sperren
        2. Sperrungen anderer Anwender ermitteln
        3. Sperrungen aufheben
        4. Änderungen ins Repository schreiben
        5. Auswahl der Dateien für Lock-Modify-Unlock
    7. 4.7 Festlegung von Tags
      1. Den Tag erstellen
        1. Auf den Tag zugreifen
    8. 4.8 Arbeiten mit Branches
      1. 4.8.1 Einen Branch erstellen
      2. 4.8.2 Änderungen in einem Branch durchführen
      3. 4.8.3 Branches zusammenführen
        1. Automatisches Zusammenführen von Branches
        2. Merge Tracking
        3. Gezielte Übernahme einzelner Changesets
        4. Gezieltes Blockieren einzelner Changesets
        5. Merge Tracking und die Versionshistorie
        6. Grenzen des Merge Tracking
        7. Manuelles Zusammenführen von Branches
      4. 4.8.4 Fehlerquellen beim Zusammenführen
        1. Mehrfache Zusammenführung
        2. Auswahl der falschen Changesets
        3. Parallele Änderungen von Dateiinhalten
        4. Änderungen an der Projektstruktur
      5. 4.8.5 Binäre Dateien und Branches
      6. 4.8.6 Einen Branch abschließen
      7. 4.8.7 Alternative Branch-Strategien
        1. Unstable Trunk
        2. Stable Trunk
        3. Echte Parallelentwicklung
  9. 5 Projektautomatisierung mit Maven
    1. 5.1 Umsetzung eines einfachen Build-Prozesses
      1. 5.1.1 Aufbau des Projektmodells
      2. 5.1.2 Benutzerspezifische Einstellungen festlegen
      3. 5.1.3 Quellelemente ermitteln
      4. 5.1.4 Projektexterne Dateien einbinden
        1. Prinzipielle Vorgehensweise
        2. Verwendung der Maven-Repositorys
        3. Ermittlung der Schlüsseldaten einer externen Bibliothek
        4. Geltungsbereich einer Abhängigkeit
        5. Transitive Abhängigkeiten
        6. Versionskonflikte
      5. 5.1.5 Produkt erstellen
        1. Einführung in den Maven-Build-Lifecycle
        2. Ausführung des Build-Lifecycles durch Plugins
        3. Aufruf des Java-Compilers
        4. Kompilierung der Modultests
        5. Generierung der JavaDoc-Dokumentation
        6. Erzeugte Dateien löschen
      6. 5.1.6 Produkt prüfen
        1. Umgang mit fehlerhaften Tests
      7. 5.1.7 Produkt ausliefern
        1. Erstellung der Archivdatei
        2. Auslieferung der Archivdatei über Repositorys
        3. Installationsdatei erzeugen
      8. 5.1.8 Zusammenfassung und Ausblick
    2. 5.2 Einführung von Build-Varianten
      1. 5.2.1 Prinzipielle Vorgehensweise
      2. 5.2.2 Einrichtung von Nexus
        1. Erstellung privater Repositorys
        2. Einrichtung der privaten Repositorys
        3. Repository-Gruppen
      3. 5.2.3 Verwendung von Nexus
        1. Ersetzen des Standard-Repositorys für externe Bibliotheken
        2. Verwendung eines Repository-Mirrors
        3. POM oder settings.xml?
        4. Test der privaten Repositorys
        5. Anzeige der Nexus-Repositorys
        6. Suchen in den Nexus-Repositorys
        7. Manuelles Befüllen von Nexus-Repositorys
      4. 5.2.4 Entwickler-Build
      5. 5.2.5 Integrations-Build
        1. Erweiterungen im Integrations-Build
        2. Erweiterung des POM um den Integrations-Build
        3. Verwendung von Build-Nummern
        4. Ermittlung der Build-Nummer aus dem Repository
        5. Verwendung des buildnumber-Plugins
        6. Auslieferung des Produktes
        7. Verwendung des Snapshot-Mechanismus
        8. Auslieferung in das Snapshots-Repository
        9. Auslieferung der Installationsdatei
        10. Automatischer Abgleich mit dem Repository
        11. Anlegen eines Projektes in Hudson
        12. Zeitgesteuerte Ausführung des Integrations-Builds
        13. Benachrichtigung der Teammitglieder per E-Mail
        14. Veröffentlichung der JUnit-Testergebnisse
        15. Status des automatisierten Integrations-Builds
        16. Eindeutige Identifizierung der verwendeten Plugins
      6. 5.2.6 Release-Build
        1. Erstellung eines Release mit dem release-Plugin
        2. Manuelle Vorbereitung des Release
        3. Aufruf des release-Plugins
    3. 5.3 Qualitätssicherung durch Audits und Metriken
      1. Auswahl der geeigneten Checkstyle-Module
      2. Konfiguration der Prüfmodule
      3. Umgang mit fehlgeschlagenen Audits
      4. Ausführung von Checkstyle
    4. 5.4 Einrichtung einer Projekt-Homepage
      1. Festlegung der Struktur der Homepage
      2. Manuell erstellte Inhalte der Homepage
      3. Erstellung der APT-Datei für die Begrüßungsseite
      4. Automatisch generierte Berichte
      5. Erstellung einer Teamübersicht
      6. Einbindung der Test- und Audit-Ergebnisse
      7. Generierung der Projekt-Homepage
      8. Veröffentlichung der Projekt-Homepage
  10. 6 Änderungsmanagement mit Redmine
    1. 6.1 Einrichten eines Projektes
      1. 6.1.1 Konfiguration des SMTP-Servers
      2. 6.1.2 Benutzer einrichten
        1. Eigenen Account konfigurieren
        2. Weitere Benutzer anlegen
        3. Manuelles Anlegen von Benutzern
        4. Registrieren neuer Benutzer über die Startseite
      3. 6.1.3 Rollen und Rechte definieren
      4. 6.1.4 Tracker, Ticketstatus und Workflows
        1. e2etrace-Workflow zur Ticketbearbeitung
        2. Konfiguration der Tracker
        3. Ticketstatus einrichten
        4. Workflow umsetzen
      5. 6.1.5 Globale Einstellungen
      6. 6.1.6 Projekt anlegen
      7. 6.1.7 Projekt konfigurieren
        1. Mitglieder zuweisen
        2. Releaseplanung
        3. Sonstige Einstellungen
    2. 6.2 Arbeiten mit Tickets
      1. 6.2.1 Spielregeln festlegen
      2. 6.2.2 Tickets erstellen
      3. 6.2.3 Tickets verifizieren
      4. 6.2.4 Tickets zuweisen
      5. 6.2.5 Tickets filtern
      6. 6.2.6 Tickets implementieren
        1. Anzeige der relevanten Tickets
        2. Tickets vs. Projektplan
        3. Integration mit Subversion
      7. 6.2.7 Implementierung eines Tickets prüfen
      8. 6.2.8 Tickets schließen
    3. 6.3 Projektdokumentation
      1. 6.3.1 Projekthistorie
      2. 6.3.2 Releaseplanung und -dokumentation
      3. 6.3.3 Datei- und Dokumentenarchiv
      4. 6.3.4 Wiki
        1. Einrichten des Wikis
        2. Wiki-Seiten erstellen
      5. 6.3.5 Foren
      6. 6.3.6 News
    4. 6.4 Fazit
  11. Literatur und Links
  12. Stichwortverzeichnis
  13. Fußnoten
    1. 1 Einleitung
    2. 2 Einführung in das Konfigurationsmanagement
    3. 3 KonfigurationsmanagementWerkzeuge
    4. 4 Verwaltung der Konfigurationselemente mit Subversion
    5. 5 Projektautomatisierung mit Maven
    6. 6 Änderungsmanagement mit Redmine