Build Management. Präsentation von Daniel Mies

Größe: px
Ab Seite anzeigen:

Download "Build Management. Präsentation von Daniel Mies daniel.mies@1und1.de"

Transkript

1 Build Management Präsentation von Daniel Mies

2 Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse mit Maven Continuous Integration mit Jenkins und Sonar

3 1&1 Member of United Internet AG 100 % SEDO Holding AG 100 % Direkte Beteiligungen Indirekte Beteiligungen über EFF Goldbach 14,96 % Hi-media 10,50 % fun 49 % Virtual Minds 48,65 % ProfitBricks 30,02 % Versatel 25,10 % Open-Xchange 28,36 % epages ca. 25 % uberall ca. 25 % 52 Beteiligungen an jungen Internet-Firmen Stand: 27. März 2014

4 Standorte

5 1&1: Dienste-Geschäft der United Internet AG Access Applications Netze Endgeräte Motiviertes Team Rund Mitarbeiter, davon ca in Produkt-Management, Entwicklung und Rechenzentren Vertriebskraft Ca. 3 Mio. Verträge p.a. Täglich 50 Tsd. Registrierungen für Free-Dienste Operational Excellence 45 Mio. Accounts in 11 Ländern 7 Rechenzentren Server in Europa und USA Inhalte Standard- Software Stand: 27. März 2014

6 Vertragsentwicklung *Erwartet für 2014

7 Über mich Diplom-Informatiker Software Entwickler bei 1&1 Themen u.a.: JavaEE, Continuous Integration, Build Management Github:

8 Über die Teilnehmer Semester?

9 Über die Teilnehmer Semester? Wer weiß, wofür wir Build Management Tools wie Maven (oder ant, make, gradle, sbt, ) brauchen?

10 Über die Teilnehmer Semester? Wer weiß, wofür wir Build Management Tools wie Maven (oder ant, make, gradle, sbt, ) brauchen? Wer hat schon mit einem Build Management Tool gearbeitet?

11 Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse mit Maven Continuous Integration mit Jenkins und Sonar

12 Szenario

13 Szenario Java Code

14 Szenario Java Code

15 Herausforderungen Kompilieren / Paketieren

16 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt?

17 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt? Wie stellen wir sicher, dass die Konfiguration immer identisch ist?

18 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt? Wie stellen wir sicher, dass die Konfiguration immer identisch ist? Dependency Management

19 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt? Wie stellen wir sicher, dass die Konfiguration immer identisch ist? Dependency Management Wie werden Libraries verwaltet

20 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt? Wie stellen wir sicher, dass die Konfiguration immer identisch ist? Dependency Management Wie werden Libraries verwaltet Was ist mit Abhängigkeiten von Libraries

21 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt? Wie stellen wir sicher, dass die Konfiguration immer identisch ist? Dependency Management Wie werden Libraries verwaltet Was ist mit Abhängigkeiten von Libraries Update / Austausch eine Library

22 Herausforderungen Kompilieren / Paketieren Wie erstellen wir ein Artefakt? Wie stellen wir sicher, dass die Konfiguration immer identisch ist? Dependency Management Wie werden Libraries verwaltet Was ist mit Abhängigkeiten von Libraries Update / Austausch eine Library Tests & Softwareanalyse

23 Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse mit Maven Continuous Integration mit Jenkins und Sonar

24 Kompilieren & Paketieren Wer hat schon mal ein JAR erstellt?

25 Kompilieren & Paketieren Wer hat schon mal ein JAR erstellt? Mit Hilfe der IDE?

26 Kompilieren & Paketieren Wer hat schon mal ein JAR erstellt? Mit Hilfe der IDE? Mit Hilfe der Kommandozeile?

27 Kompilieren & Paketieren Wer hat schon mal ein JAR erstellt? Mit Hilfe der IDE? Mit Hilfe der Kommandozeile? Alternative Paketierungen?.war,.ear,?

28 Kompilieren & Paketieren Kompilieren & Paketieren mit javac

29 Kompilieren & Paketieren Kompilieren & Paketieren mit javac wird schnell kompliziert

30 Kompilieren & Paketieren Kompilieren & Paketieren mit javac wird schnell kompliziert Konfiguration muss bei allen identisch sein (Java Version, Dependencies)

31 Kompilieren & Paketieren Kompilieren & Paketieren mit javac wird schnell kompliziert Konfiguration muss bei allen identisch sein (Java Version, Dependencies) Führt schnell zu copy&paste

32 Kompilieren & Paketieren Kompilieren & Paketieren mit javac wird schnell kompliziert Konfiguration muss bei allen identisch sein (Java Version, Dependencies) Führt schnell zu copy&paste Entwickler benötigen Build Notes um einheitliche Konfiguration sicherzustellen

33 Kompilieren & Paketieren Kompilieren & Paketieren mit javac wird schnell kompliziert Konfiguration muss bei allen identisch sein (Java Version, Dependencies) Führt schnell zu copy&paste Entwickler benötigen Build Notes um einheitliche Konfiguration sicherzustellen

34 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE

35 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE kompilieren und paketieren über GUI möglich

36 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE kompilieren und paketieren über GUI möglich Dependencies werden richtig paketiert

37 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE kompilieren und paketieren über GUI möglich Dependencies werden richtig paketiert Konfiguration muss bei allen identisch sein (Build Notes?)

38 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE kompilieren und paketieren über GUI möglich Dependencies werden richtig paketiert Konfiguration muss bei allen identisch sein (Build Notes?) Einfacher, wenn alle die selbe IDE nutzen

39 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE kompilieren und paketieren über GUI möglich Dependencies werden richtig paketiert Konfiguration muss bei allen identisch sein (Build Notes?) Einfacher, wenn alle die selbe IDE nutzen Erste Schritte sind in der IDE einfach. Sobald mehrere Entwickler beteiligt sind, wird die Konfiguration aufwendig.

40 Kompilieren & Paketieren Kompilieren & Paketieren mit IDE kompilieren und paketieren über GUI möglich Dependencies werden richtig paketiert Konfiguration muss bei allen identisch sein (Build Notes?) Einfacher, wenn alle die selbe IDE nutzen Erste Schritte sind in der IDE einfach. Sobald mehrere Entwickler beteiligt sind, wird die Konfiguration aufwendig.

41 Kompilieren & Paketieren mit javac / IDE Kompilieren und Paketieren mit javac / IDE:

42 Kompilieren & Paketieren mit javac / IDE Kompilieren und Paketieren mit javac / IDE: ist bei kleinen Projekten einfach

43 Kompilieren & Paketieren mit javac / IDE Kompilieren und Paketieren mit javac / IDE: ist bei kleinen Projekten einfach erfordert Hilfsmittel (z.b. Build Notes), wenn die Projekte wachsen

44 Kompilieren & Paketieren mit javac / IDE Kompilieren und Paketieren mit javac / IDE: ist bei kleinen Projekten einfach erfordert Hilfsmittel (z.b. Build Notes), wenn die Projekte wachsen abweichende Konfigurationen der Entwickler führen zu Fehlern

45 Kompilieren & Paketieren mit javac / IDE Kompilieren und Paketieren mit javac / IDE: ist bei kleinen Projekten einfach erfordert Hilfsmittel (z.b. Build Notes), wenn die Projekte wachsen abweichende Konfigurationen der Entwickler führen zu Fehlern wir brauchen Build-Management-Tools um Projekte einfacher zu kompilieren / paketieren

46 Maven!!!!! Build Management mit Maven

47 Über Maven Build-Management-Tool der Apache Software Foundation Grundsatz: convention over configuration Support u.a. für: Java, C, C++,.NET, (u.a. Dokumentation, Installationsanleitungen)

48 Convention over Configuration

49 Convention over Configuration Softwaredesign-Paradigma welches Standardkonventionen vorsieht wodurch die Konfiguration einer Software-Anwendung erheblich vereinfacht wird ohne dabei die Möglichkeiten der Entwickler einzuschränken.

50 Convention over Configuration mit Maven

51 Convention over Configuration mit Maven Standardaufgaben müssen nicht konfiguriert werden (compile, package): Maven Default Lifecycle

52 Convention over Configuration mit Maven Standardaufgaben müssen nicht konfiguriert werden (compile, package): Maven Default Lifecycle Zusätzliche Aufgaben können bei Bedarf konfiguriert werden

53 Convention over Configuration mit Maven Standardaufgaben müssen nicht konfiguriert werden (compile, package): Maven Default Lifecycle Zusätzliche Aufgaben können bei Bedarf konfiguriert werden Alle Defaults können bei Bedarf konfiguriert werden

54 Beispiel Code unter: https://github.com/dmies/mavendemos

55 Maven Projektstruktur project root - /src - /main - /java - /resources - /test - /java - /resources - pom.xml

56 Maven Projektstruktur project root - /src Quellcode - /main - /java - /resources - /test - /java - /resources - pom.xml

57 Maven Projektstruktur project root - /src Quellcode - /main - /java - /resources - /test - /java - /resources - pom.xml Konfigurationsdateien

58 Maven Projektstruktur project root - /src Quellcode - /main - /java - /resources - /test - /java - /resources - pom.xml Konfigurationsdateien Tests

59 Maven Projektstruktur project root - /src - /main - /java - /resources - /test - /java - /resources - pom.xml Quellcode Konfigurationsdateien Tests Konfigurationsdateien für Tests

60 Maven Projektstruktur project root - /src - /main - /java - /resources - /test - /java - /resources - pom.xml Maven POM Quellcode Konfigurationsdateien Tests Konfigurationsdateien für Tests

61 Maven Project Object Model (POM) pom.xml: XML-Datei mit Metadaten für Maven liegt im Hauptverzeichnis des Projekts definiert alle wichtigen Einstellungen des Projekts, wie z.b. Encoding Java Version Dependencies ist frei konfigurierbar

62 Einfache Maven POM <project> <modelversion>4.0.0</modelversion> <groupid>com.oneandone</groupid> <artifactid>sample-app</artifactid> <version>1.2.3</version> </project>

63 Einfache Maven POM <project> <modelversion>4.0.0</modelversion> <groupid>com.oneandone</groupid> <artifactid>sample-app</artifactid> <version>1.2.3</version> </project> Möglichst global eindeutiger Namespace (z.b. com.oneandone)

64 Einfache Maven POM <project> <modelversion>4.0.0</modelversion> <groupid>com.oneandone</groupid> <artifactid>sample-app</artifactid> <version>1.2.3</version> </project> Möglichst global eindeutiger Namespace (z.b. com.oneandone) Eindeutiger Name innerhalb des Namespace

65 Einfache Maven POM <project> <modelversion>4.0.0</modelversion> <groupid>com.oneandone</groupid> <artifactid>sample-app</artifactid> <version>1.2.3</version> </project> Eindeutige Version. Während der Entwicklung kann der Suffix -SNAPSHOT verwendet werden. Möglichst global eindeutiger Namespace (z.b. com.oneandone) Eindeutiger Name innerhalb des Namespace

66 Maven verwenden Maven kann über die UNIX Shell und die MSDOS Batch verwendet werden. Befehl: mvn! Alternativ bieten IDEs auch Maven Support + GUI Eclipse: https://www.eclipse.org/m2e/ IntelliJ: bereits integriert Netbeans: bereits integriert

67 Leeres Maven Projekt erzeugen!!!!!!!! mvn archetype:generate

68 Maven Default Lifecycle validate initialize generate-sources process-sources generate-resources process-resources compile process classes generate-test-sources process-test-sources generate-test-resources process-test-resources test-compile process-test-classes test prepare-package package pre-integration-test integration-test post-integration-test verify install deploy

69 Maven Default Lifecycle validate initialize generate-sources process-sources generate-resources process-resources compile process-classes Ist die pom.xml wohlgeformt Properties setzen (Optional) Erzeugen von sourcen in target/ generated-src (Optional) Verarbeite sourcen (filtering) (Optional) Erzeugen von ressourcen (Optional) Verarbeite ressourcen (filtering) Compile AOP

70 Maven Default Lifecycle generate-test-sources process-test-sources generate-test-resources process-test-resources test-compile test prepare-package package pre-integration-test integration-test post-integration-test Wie generate-sources Wie process-sources Wie generate-sources Wie process-sources Wie compile Ausführen der Tests Paketierung vorbereiten Paketieren (jar / zip / ear / war / ) Vorarbeiten für Integrationstests integration-test Nacharbeiten der Integrationstests

71 Maven Default Lifecycle verify install deploy Verifizieren des gebauten Artefaktes Übertragen des Artefaktes in das interne Repository (.m2/repository) Übertragen des Artefakten in ein externes Repository

72 Lifecycle, Phase, Plugin, Goal Lifecycle

73 Lifecycle, Phase, Plugin, Goal Lifecycle Phase Phase Phase Phase Phase

74 Lifecycle, Phase, Plugin, Goal Lifecycle Phase Phase Phase plugin:goal plugin:goal plugin:goal Phase plugin:goal Phase

75 Phase oder Goal ausführen!!! mvn clean:clean install (kurz: mvn clean install)! mvn compile jar:jar

76 Phase oder Goal ausführen!! clean ist ein Plugin! mvn clean:clean install (kurz: mvn clean install)! mvn compile jar:jar

77 Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse mit Maven Continuous Integration mit Jenkins und Sonar

78 Dependency Hell Bild:

79 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen:

80 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen: Welche Version der Library müssen wir verwenden?

81 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen: Welche Version der Library müssen wir verwenden? Wo muss ich die Library laden?

82 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen: Welche Version der Library müssen wir verwenden? Wo muss ich die Library laden? Was ist mit älteren Versionen?

83 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen: Welche Version der Library müssen wir verwenden? Wo muss ich die Library laden? Was ist mit älteren Versionen? Was ist mit Abhängigkeiten der Libraries untereinander?

84 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen: Welche Version der Library müssen wir verwenden? Wo muss ich die Library laden? Was ist mit älteren Versionen? Was ist mit Abhängigkeiten der Libraries untereinander? Was, wenn wir nicht alle Teile einer Library brauchen?

85 Dependency Hell Dependency Hell: Mit wachsender Zahl an Libraries stellen sich u.a. folgende Fragen: Welche Version der Library müssen wir verwenden? Wo muss ich die Library laden? Was ist mit älteren Versionen? Was ist mit Abhängigkeiten der Libraries untereinander? Was, wenn wir nicht alle Teile einer Library brauchen? Update einer Library: Wie wirkt sich das auf die restliche Anwendung aus?

86 Dependency Hell Lösung? Nicht wirklich. Build Notes / Skripte können das Dependency Management vereinfachen.

87 Dependency Hell Lösung? Nicht wirklich. Build Notes / Skripte können das Dependency Management vereinfachen. Was, wenn man mal eben eine Library aktualisieren will?

88 Dependency Management mit Maven!!!!! Dependency Management mit Maven

89 Dependency Management Idee: Maven verwaltet alle Abhängigkeiten des Projekts

90 Dependency Management Idee: Maven verwaltet alle Abhängigkeiten des Projekts Entwickler müssen Abhängigkeiten nur in der POM definieren.

91 Dependency Management Idee: Maven verwaltet alle Abhängigkeiten des Projekts Entwickler müssen Abhängigkeiten nur in der POM definieren. Maven lädt Abhängigkeiten automatisch aus einem Repository

92 Dependency Management Artefakte werden in sog. Repositories gespeichert Ein Repository kann lokal oder remote existieren

93 Dependency Management Artefakte werden in sog. Repositories gespeichert Ein Repository kann lokal oder remote existieren Artefakte werden mit Hilfe von Koordinaten eingebunden Zusätzlich kann noch ein Scope definiert werden (test, compile, runtime, )

94 Dependency Management Artefakte werden in sog. Repositories gespeichert Ein Repository kann lokal oder remote existieren Artefakte werden mit Hilfe von Koordinaten eingebunden Zusätzlich kann noch ein Scope definiert werden (test, compile, runtime, ) Transitive Abhängigkeiten werden automatisch aufgelöst Nearest Definition : Das Artefakt, welches im Abhängigkeitsbaum am nächsten am Projekt definiert ist, gewinnt.

95 Dependency Management Artefakte werden in sog. Repositories gespeichert Ein Repository kann lokal oder remote existieren Artefakte werden mit Hilfe von Koordinaten eingebunden Zusätzlich kann noch ein Scope definiert werden (test, compile, runtime, ) Transitive Abhängigkeiten werden automatisch aufgelöst Nearest Definition : Das Artefakt, welches im Abhängigkeitsbaum am nächsten am Projekt definiert ist, gewinnt. Abhängigkeiten können explizit ausgeschlossen werden

96 Dependency Management <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>4.0.3.release</version> </dependency> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.11</version> <scope>test</scope> </dependency> </dependencies>

97 Repositories Das Standard-Repository kann auf https://repository.sonatype.org durchsucht werden. Ein eigenes Repository (Nexus) kann in Maven zusätzlich eingebunden werden.

98 Beispiel Code unter: https://github.com/dmies/mavendemos und https://github.com/dmies/restexample

99 Properties / Resource Filtering!!!!! Properties und Resource Filtering

100 Properties Properties können an mehreren Stellen im Projekt verwendet werden.

101 Properties Properties können an mehreren Stellen im Projekt verwendet werden. Einige Properties werden von Maven automatisch erstellt (z.b. ${project.version}).

102 Properties Properties können an mehreren Stellen im Projekt verwendet werden. Einige Properties werden von Maven automatisch erstellt (z.b. ${project.version}). Definition (in pom): <properties> <my.property>property-value</my.property> </properties>

103 Properties verwenden Property verwenden: ${my.property} ${project.version} (automatisch erstellt)

104 Properties verwenden Property verwenden: ${my.property} ${project.version} (automatisch erstellt) Properties können in der pom.xml und grundsätzlich in jeder Datei des Projekts verwendet werden. Auch im Quellcode oder in Konfigurationsdateien (Resource Filtering).

105 Resource Filtering!!! Textersetzung in Konfigurationsdateien und Quelltexten Verwendung von Properties: ${my.property} Ersetzung in Lifecycle-Phase process-resources

106 Resource Filtering Filtern von Resourcen: Filtering für Ordner in pom.xml einschalten! Filtern von Quelltexten: Quelltext als Template ablegen z.b. in src/main/template Filtering für src/main/template einschalten und Ausgabeordner definieren Ausgabeordner als Quellordner einbinden via maven-buildhelper-plugin

107 Beispiel Code unter: https://github.com/dmies/mavendemos

108 Fortgeschrittene Themen Super POM Vererbung innerhalb von Maven POMs. Jede POM erbt bspw. von der Maven Super POM

109 Fortgeschrittene Themen Super POM Vererbung innerhalb von Maven POMs. Jede POM erbt bspw. von der Maven Super POM Multi-Module-Projekte Möglichkeit, Projekte in mehrere Module zu gliedern. Beispiel: API und Implementierung trennen (siehe JavaEE)

110 Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse mit Maven Continuous Integration mit Jenkins und Sonar

111 Softwareanalyse!!!! Statische Softwareanalyse (Tests werden nicht ausgeführt) Dynamische Softwareanalyse (Tests werden ausgeführt)

112 Statische Softwareanalyse!!! Manuell Codereview! Toolgestützt Checkstyle PMD Findbugs

113 Checkstyle Aktuelle Version: 5.7 ( ) 127 Regeln Kategorien der gefunden Fehler Annotations, Block Checks, Class Design, Coding, Duplicate Code, Headers, Imports, Javadoc Comments, Metrics, Modifiers, Naming Conventions, Regexp, Size Violations, Whitespace

114 Checkstyle in Maven <project>... <reporting> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-checkstyle-plugin</artifactid> <version>2.12.1</version> </plugin> </plugins> </reporting>... Ausführen mit! mvn checkstyle:checkstyle

115 PMD Aktuelle Version: ( ) 232 Regeln, u.a. Detektion von unbenutzten Variablen leeren catch-blöcken überflüssigen Objekten

116 PMD in Maven <project>... <reporting> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-pmd-plugin</artifactid> <version>3.1</version> </plugin> </plugins> </reporting>... Ausführen mit! mvn pmd:check

117 Findbugs Aktuelle Version: (2013) 408 Regeln Kategorien der gefundenen Fehler: Bad Practice, Correctness, Performance,

118 Findbugs in Maven <project>... <reporting> <plugins> <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>findbugs-maven-plugin</artifactid> <version>2.5.3</version> </plugin> </plugins> </reporting>... Ausführen mit! mvn site

119 mvn site mvn site generiert eine HTML-Seite zum jeweiligen Projekt Bindet alle Reports ein HTML Ausgabe in Ordner target/site/index.html

120 Dynamische Softwareanalyse!!! Toolgestützt Surefire Cobertura

121 Surefire Unterstützung für JUnit3, JUnit4, TestNG Wird in Phase test gestartet (alle Tests in src/test/java) Ausgeführte Tests (konfigurierbar): *Test.java, Test*.java, *TestCase.java Ergebnisse werden in.txt oder.xml ausgegeben Wenn Tests fehlschlagen, bricht der Build ab.

122 Surefire in Maven <project>... <build> <pluginmanagement> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-surefire-plugin</artifactid> <version>2.17</version> </plugin> </plugins> </pluginmanagement> </build>... </project>

123 Cobertura Version: Ermittelt die Testabdeckung innerhalb des Projekts Testabdeckung wird als HTML Report generiert

124 Cobertura in Maven <reporting> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-project-info-reports-plugin</artifactid> <version>2.7</version> </plugin> <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>cobertura-maven-plugin</artifactid> <version>2.6</version> <configuration> <formats> <format>html</format> <format>xml</format> </formats> </configuration> </plugin> </plugins> </reporting>

125 Softwareanalyse in Maven Es gibt zahlreiche Tools um Software automatisiert analysieren zu lassen: Potentielle Fehler im Code Überwachung der Tests Ermittlung der Testabdeckung

126 Softwareanalyse in Maven Es gibt zahlreiche Tools um Software automatisiert analysieren zu lassen: Potentielle Fehler im Code Überwachung der Tests Ermittlung der Testabdeckung Aber: Muss der Entwickler diese immer ausführen und analysieren?

127 Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse mit Maven Continuous Integration mit Jenkins und Sonar

128 Development Cycle

129 Development Cycle Entwicklung

130 Development Cycle Regelmäßige Integration (SVN) Entwicklung

131 Development Cycle Regelmäßige Integration (SVN) Entwicklung Build

132 Development Cycle Regelmäßige Integration (SVN) Entwicklung Build Tests / Softwareanalyse

133 Development Cycle Regelmäßige Integration (SVN) Entwicklung Build Deployment Tests / Softwareanalyse

134 Continuous Integration Continuous Integration is a software development practice where members of a team integrate their work frequently leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Martin Fowler

135 Development Cycle Regelmäßige Integration (SVN) Entwicklung Build Deployment Tests / Softwareanalyse

136 Development Cycle Regelmäßige Integration (SVN) Entwicklung Maven Build Deployment Tests / Softwareanalyse

137 Development Cycle (optimiert)

138 Development Cycle (optimiert) Entwicklung Regelmäßige Integration

139 Development Cycle (optimiert) Build Test Entwicklung Regelmäßige Integration Softwareanalyse Deployment

140 Development Cycle (optimiert) Build Test Entwicklung Regelmäßige Integration Softwareanalyse Deployment Entwickler Continuous Integration Server

141 Jenkins Continuous Integration Server (http://jenkins-ci.org) Einheitliche Buildumgebung für alle Softwareprojekte Einheitlicher Softwareentwicklungs- prozess abbildbar Erweiterbar durch Plugins Eigene Ansichten pro Domain z.b. Aufteilung von Entwicklung und Produktion jenkins- ci.org

142 Vorteile

143 Vorteile Automatisierter Build-Prozess Java Version wird für jedes Projekt festgelegt -> Build ist reproduzierbar

144 Vorteile Automatisierter Build-Prozess Java Version wird für jedes Projekt festgelegt -> Build ist reproduzierbar Automatisiertes Testen der Anwendung Bei fehlgeschlagenen Tests wird der Build-Prozess abgebrochen und der Entwickler per Mail informiert

145 Vorteile Automatisierter Build-Prozess Java Version wird für jedes Projekt festgelegt -> Build ist reproduzierbar Automatisiertes Testen der Anwendung Bei fehlgeschlagenen Tests wird der Build-Prozess abgebrochen und der Entwickler per Mail informiert Softwareanalyse Umfangreiche Auswertung der Anwendung (statische und dynamische Softwareanalyse)

146 Vorteile Automatisierter Build-Prozess Java Version wird für jedes Projekt festgelegt -> Build ist reproduzierbar Automatisiertes Testen der Anwendung Bei fehlgeschlagenen Tests wird der Build-Prozess abgebrochen und der Entwickler per Mail informiert Softwareanalyse Umfangreiche Auswertung der Anwendung (statische und dynamische Softwareanalyse) Automatisiertes Deployment

147 Vorteile Automatisierter Build-Prozess Java Version wird für jedes Projekt festgelegt -> Build ist reproduzierbar Automatisiertes Testen der Anwendung Bei fehlgeschlagenen Tests wird der Build-Prozess abgebrochen und der Entwickler per Mail informiert Softwareanalyse Umfangreiche Auswertung der Anwendung (statische und dynamische Softwareanalyse) Automatisiertes Deployment Alte Builds werden archiviert

148 Sonar

149 Sonar Plattform um Codequalität zu managen (http://www.sonarsource.org/)

150 Sonar Plattform um Codequalität zu managen (http://www.sonarsource.org/) Erweiterbar durch Plugins

151 Sonar Plattform um Codequalität zu managen (http://www.sonarsource.org/) Erweiterbar durch Plugins Analyse jedes Projektes mit einem Quality Profile

152 Sonar Plattform um Codequalität zu managen (http://www.sonarsource.org/) Erweiterbar durch Plugins Analyse jedes Projektes mit einem Quality Profile Quality Profiles: Coding Rules Checkstyle PMD Findbugs

153 Sonar Plattform um Codequalität zu managen (http://www.sonarsource.org/) Erweiterbar durch Plugins Analyse jedes Projektes mit einem Quality Profile Quality Profiles: Coding Rules Checkstyle PMD Findbugs Metrikenbasierte Alarme (z.b. Testabdeckung < 80%)

154 Jenkins + Sonar!!!! Demo

155 Vielen Dank für Ihre Aufmerksamkeit

Automatischer Build mit Maven 2

Automatischer Build mit Maven 2 Automatischer Build mit Maven 2 Stefan Scheidt OPITZ CONSULTING GmbH Ihr Referent Stefan Scheidt Senior Architekt bei der OPITZ CONSULTING GmbH Seit über 10 Jahren im Oracle- und Java-Umfeld tätig Schwerpunkte:

Mehr

Der Weisheit letzter Schluss:

Der Weisheit letzter Schluss: Der Weisheit letzter Schluss: Maven 2 in der Java Entwicklung Web Site: www.soebes.de Blog: blog.soebes.de Email: info@soebes.de Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1. Was ist Maven? 2. Features von

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 12: Metawissen Java Bibliotheken, Maven Robert Jakob Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Robert Jakob (Univ. Freiburg) Programmieren in Java JAVA 1 / 33

Mehr

Maven 2 Softwareprojekte mit Kultur

Maven 2 Softwareprojekte mit Kultur Maven 2 Softwareprojekte mit Kultur Patrick Zeising 28.05.2010 Motivation Projekte unterscheiden sich stark im Aufbau Abläufe beim Übersetzen und Deployen unterscheiden sich stark

Mehr

Softwareprojekte mit Kultur

Softwareprojekte mit Kultur Maven Softwareprojekte mit Kultur Patrick Zeising Konfigurationsmanagement Motivation Projektaufbau unterschiedlich Abläufe zum Übersetzen und Deployen unterschiedlich Verwendete Tools, Prozesse, Skripte

Mehr

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012

Buildsystem. Maven & Scons. Controls Entwicklungsforum Januar 2012 Buildsystem Maven & Scons Controls Entwicklungsforum Januar 2012 1 2 a call from the past Binary Repository Speichern von Artefakten (z.b. Shared Library und zugehörige Header) Versionierung von Artefakten

Mehr

Einführung in Maven und GWT

Einführung in Maven und GWT Einführung in Maven und GWT Prof. Christoph Knabe Beuth-Hochschule Berlin 08.05.2014 Gliederung Motivation für Build-Werkzeug Maven-Ziele, Begriffe Maven-Benutzung in 5 min Maven-Vorteile GWT-Ziele GWT-Projekt

Mehr

Build-Prozesse für Geschäftsanwendungen mit Apache Maven

Build-Prozesse für Geschäftsanwendungen mit Apache Maven Build-Prozesse für Geschäftsanwendungen mit Apache Maven Was sind eigentlich Geschäftsanwendungen? Geschäftsanwendungen (z.b. ERP) potenziell viele Benutzer in unterschiedlichen Rollen und unterschiedlichen

Mehr

Continuous Integration mit Jenkins

Continuous Integration mit Jenkins Continuous Integration mit Jenkins Christian Robert anderscore GmbH Senior Software Engineer Frankenwerft 35 christian.robert@anderscore.com 50677 Köln www.anderscore.com FrOSCon 2012 Christian Robert

Mehr

Seminar - Bericht. Maven Project Management & Comprehension. Fachhochschargau Departement Technik Studiengang Informatik. Gruppe Jonas Weibel

Seminar - Bericht. Maven Project Management & Comprehension. Fachhochschargau Departement Technik Studiengang Informatik. Gruppe Jonas Weibel Seminar - Bericht Maven Project Management & Comprehension Fachhochschargau Departement Technik Studiengang Informatik Gruppe Jonas Weibel Betreuender Dozent Prof. Dr. Dominik Gruntz Windisch, im Januar

Mehr

Buildwerkzeuge für Javaprojekte. Christian Bunse Institut für Informatik 03.07.2008

Buildwerkzeuge für Javaprojekte. Christian Bunse Institut für Informatik 03.07.2008 Buildwerkzeuge für Javaprojekte Christian Bunse Institut für Informatik 03.07.2008 Inhalt Der Build Besonderheiten von Javaprojekten Ziele von Buildwerkzeugen Continuous Integration Vorstellung von Buildwerkzeugen

Mehr

Maven 2.0. DRV Jahrestagung Java Würzburg 26.2.2008 Rainer Vehns, codecentric GmbH. 2008 codecentric GmbH

Maven 2.0. DRV Jahrestagung Java Würzburg 26.2.2008 Rainer Vehns, codecentric GmbH. 2008 codecentric GmbH Maven 2.0 DRV Jahrestagung Java Würzburg 26.2.2008 Rainer Vehns, codecentric GmbH Agenda Einführung Project Object Model (POM) Repositories Maven und Eclipse Maven - LIVE 1. EINFÜHRUNG Einführung - Was

Mehr

Verteilte Systeme (WS 2013/14) Übung 0: Einführung in Maven und Git. Oliver Kleine Institut für Telematik, Universität zu Lübeck

Verteilte Systeme (WS 2013/14) Übung 0: Einführung in Maven und Git. Oliver Kleine Institut für Telematik, Universität zu Lübeck Verteilte Systeme (WS 2013/14) Übung 0: Einführung in Maven und Git Oliver Kleine Institut für Telematik, Universität zu Lübeck Build-Management in JAVA 3 Build-Management? Wozu? Traditionelle manuelle

Mehr

Vom lokalen Build zum Deployment

Vom lokalen Build zum Deployment Vom lokalen Build zum Deployment International PHP Conference Manuel Pichler 12.10.2011 Vom lokalen Build zum Deployment 1 / 36 Über mich Diplominformatiker Mehr als 10 Jahre Erfahrung im PHP-Umfeld Autor

Mehr

Software-Engineering 2: Automatische Build-Werkzeuge

Software-Engineering 2: Automatische Build-Werkzeuge Software-Engineering 2: Automatische Build-Werkzeuge Prof. Dr. Axel Böttcher 22. Oktober 2012 Motivation 1 Entwicklungprozesse in der Praxis, Beispiel Facbook: Our development cycle is extremely fast,

Mehr

Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy

Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy Über Ant und Maven zu SBT und Gradle Persönliche Build-Höllen für Jedermann Andreas Hartmann & Dr. Halil-Cem Gürsoy 07.04.2011 Speaker Andreas Hartmann [hartmann@adesso.de] Principal Software Engineer

Mehr

Referent: Thomas Storch (FI für Anwendungsentwicklung, 1. Lj.) Vortrag: Apache Maven. Datum: 25.04.2012. Deutsche Software Engineering & Research GmbH

Referent: Thomas Storch (FI für Anwendungsentwicklung, 1. Lj.) Vortrag: Apache Maven. Datum: 25.04.2012. Deutsche Software Engineering & Research GmbH Referent: Thomas Storch (FI für Anwendungsentwicklung, 1. Lj.) Vortrag: Apache Maven Datum: 25.04.2012 Deutsche Software Engineering & Research GmbH Steinstraße 11 02826 Görlitz Germany Telefon: +49 35

Mehr

Buildmanagement. Konstantin Domoratskyy

Buildmanagement. Konstantin Domoratskyy Buildmanagement Konstantin Domoratskyy Alle Tätigkeiten, die man bereits zwei mal manuell durchgeführt hat, sollen automatisiert werden. Mike Clark 20.05.08 Konstantin Domoratskyy: Buildmanagement 2 Inhalt

Mehr

CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011. Statische Code-Analyse für Groovy & Grails mit CodeNarc

CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011. Statische Code-Analyse für Groovy & Grails mit CodeNarc Statische Code-Analyse für Groovy & Grails mit CodeNarc CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011 OPITZ CONSULTING GmbH 2011 Folie 1 Stefan Glase, OPITZ CONSULTING Software-Entwickler Java

Mehr

Builddreikampf: Ant, Maven und Gradle. Sven Bunge / Carl Düvel

Builddreikampf: Ant, Maven und Gradle. Sven Bunge / Carl Düvel Builddreikampf: Ant, Maven und Gradle Sven Bunge / Carl Düvel holisticon AG Wettkampfplan 1. Die Regeln 2. Vorstellung der Kandidaten 3. Ring frei die Disziplinen! 1. Dependency Management 2. Multiprojektsupport

Mehr

1 Welches Problem löst Maven?

1 Welches Problem löst Maven? 1 Welches Problem löst Maven? Maven kann den kompletten Projektlifecycle verwalten und im Speziellen die internen und externen Abhängigkeiten eines Projekts managen. Im Wesentlichen geschieht dies über

Mehr

Den Entwicklungsprozess im Griff mit Maven, Jenkins und Git

Den Entwicklungsprozess im Griff mit Maven, Jenkins und Git Sourcetalktage 2012 Referent: Tobias Heisecke ( theisecke@googlemail.com ) - seit 1995 bei der ZAD-GmbH in Northeim ( Dienstleistungsrechenzentrum im Gesundheitswesen ) - Forderungseinzug für Krankentransport-

Mehr

Echolot Qualitätssicherung mit Sonar

Echolot Qualitätssicherung mit Sonar Echolot Qualitätssicherung mit Sonar Thomas Haug thomas.haug@mathema.de www.mathema.de Motivation Sonar Überblick Demo Fazit Motivation Sonar Überblick Demo Fazit Sometimes the developers manage to maintain

Mehr

Grundlagen des Buildmanagement- Tools Apache Maven

Grundlagen des Buildmanagement- Tools Apache Maven Grundlagen des Buildmanagement- Tools Apache Maven Seminararbeit im Studiengang Scientific Programming vorgelegt von Sinan Böcker Matr.-Nr.: 836951 am 15. Dezember 2011 an der Fachhochschule Aachen Erstprüfer:

Mehr

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de

Das Build Tool Ant. Sebastian Mancke, mancke@mancke-software.de Das Build Tool Ant Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation Bei der Übersetzung und Pflege von Software treten viele, gleich bleibende Arbeitsschritte auf. Übersetzen des Codes

Mehr

Build-Pipeline mit Jenkins

Build-Pipeline mit Jenkins JUG Augsburg 24.10.2013 Seite 1 Wer sind wir? Agiler Architekt und Entwickler Eigenes Produkt mit kompletter Pipeline / CD aktuell: Architekt / Entwickler in einem großen Entwicklungsprojekt im Automotiv

Mehr

[3-1] Maven by Example

[3-1] Maven by Example Literatur und Web [3-1] Maven by Example http://www.sonatype.com/resources/books/maven-by-example/download Oder die Vorversion: http://www.filibeto.org/~aduritz/truetrue/mvn/maven-by-example- 0.7.pdf [3-2]

Mehr

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009

Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 Best Practices für flexible und wartbare Codegeneratoren mit openarchitectureware Karsten Thoms Software Architekt 20.04.2009 1 Agenda (1) Fornax-Plattform, Cartridges (2) Referenzimplementierung, Referenzmodell

Mehr

Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant

Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant Eclipse und Java Einheit 06: Building Eclipse Projete mit Ant Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis

Mehr

Konfigurationsmanagement

Konfigurationsmanagement Konfigurationsmanagement mit Maven 2 Michael Albrecht, Manfred Wolff Michael Albrecht ist Chefarchitekt bei der NEUSTA GmbH und seit 2002 mit der Entwicklung und der Architektur von Java EE Projekten beschäftigt.

Mehr

Consultant & Geschäftsführer, enpit consulting OHG E-Mail: ugb@enpit.de

Consultant & Geschäftsführer, enpit consulting OHG E-Mail: ugb@enpit.de ADF Spotlight - Entwicklungswerkzeuge & - methoden - ADF 12c mit Git, Maven & Co. - Status Quo Ulrich Gerkmann-Bartels Consultant & Geschäftsführer, enpit consulting OHG E-Mail: ugb@enpit.de +++ Bitte

Mehr

Ant + Ivy Building with dependencies

Ant + Ivy Building with dependencies Ant + Ivy Building with dependencies Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Björn Feustel Version: 1.0 www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory

Mehr

Build-Management. Der Einsatz von Make, Ant und Maven und Co. Prof. Dr. Nikolaus Wulff

Build-Management. Der Einsatz von Make, Ant und Maven und Co. Prof. Dr. Nikolaus Wulff Build-Management Der Einsatz von Make, Ant und Maven und Co. Prof. Dr. Nikolaus Wulff Integrierter Arbeitsplatz Eine IDE wie Eclipse, JBuilder oder NetBeans unterstützt die alltägliche Arbeit. Sie bietet

Mehr

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm 25.6.2012 Make-loses Java für mehr Produktivität: Das z 2 -Environment Henning Blohm 25.6.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Oh je noch ein Tool?

Mehr

Continuous Everything

Continuous Everything Continuous Everything Development, Integration, Deployment, DevOps Peter Hormanns cusy GmbH, Berlin Vortrag OpenRheinRuhr 5./6. November 2016 de.slideshare.net/cusyio/continuous-everything Kapitel you

Mehr

Continuous Integration für Eclipse 4 RCP-Anwendungen mit Maven/Jenkins/Nexus/Sonar

Continuous Integration für Eclipse 4 RCP-Anwendungen mit Maven/Jenkins/Nexus/Sonar Continuous Integration für Eclipse 4 RCP-Anwendungen mit Maven/Jenkins/Nexus/Sonar Hannes Schmidt 02.10.2015 Eclipse-Basics Plugins, Features, Produkte Produkt Feature A Plugin A Plugin B Feature B Plugin

Mehr

Das Build-Tool ANT ETIS SS05

Das Build-Tool ANT ETIS SS05 Das Build-Tool ANT ETIS SS05 Motivation Build - Datei Allgemeiner Aufbau Project Target Task Properties Zusammenfassung Literatur Gliederung 2 Motivation ANT I open source-projekt (aktuell: Version 1.6.5)

Mehr

Git in großen Projekten

Git in großen Projekten Git in großen Projekten Einsatz von Submodulen und Subtrees René Preißel (rp@etosquare.de) Buchhandlung Lehmanns, 16.10.2013 1 Über Mich René Preißel (rp@etosquare.de) Freiberuflicher Berater, Entwickler,

Mehr

Open Source. Hendrik Ebbers 2015

Open Source. Hendrik Ebbers 2015 Open Source Hendrik Ebbers 2015 Open Source About me Hendrik Ebbers Lead of JUG Dortmund Java Architect @ Canoo Engineering AG JavaOne Rockstar, Java Expert Group Member Speaker, blogger & author Engineering

Mehr

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann.

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann. Softwaretests Werkzeuge zur Automatisierung für Thementag Wer testet, ist feige 24.06.2009 Autor: Markus Alvermann Seite 2 / 39 Agenda Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous

Mehr

Kampf dem Fehlerteufel PMD, Findbugs und Checkstyle in großen Projekten

Kampf dem Fehlerteufel PMD, Findbugs und Checkstyle in großen Projekten main {GRUPPE} Seite 1 Jürgen Nicolai Geschäftsführender Gesellschafter Liebknechtstrasse 33 70565 Stuttgart Tel : 07 11/7 81 19 90 Fax : 07 11/ 7 81 19 91 Mail : j.nicolai@main-gruppe.de Web: www.main-gruppe.de

Mehr

Webtests mit Selenium, Groovy, TestNG und Maven

Webtests mit Selenium, Groovy, TestNG und Maven mit Selenium, Groovy, TestNG und Maven Im ersten Teil dieser Artikelserie [1] wurden Testkonzepte und Selenium [2] näher vorgestellt. Dieser zweite Teil stellt die Integration in ein Projekt vor und rundet

Mehr

ANT. Kurzvortrag von Manuel Schulze. mschulze@inf.fu-berlin.de

ANT. Kurzvortrag von Manuel Schulze. mschulze@inf.fu-berlin.de ANT Kurzvortrag von Manuel Schulze mschulze@inf.fu-berlin.de ANT Überblick Teilprojekt der Apache Software Foundation [1] ANT ist Opensource Build-Tool ähnlich wie make (?) jedoch voll auf Java zugeschnitten

Mehr

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim, 10.11.2014 Entwicklungsumgebungen Packer, Vagrant, Puppet Alexander Pacnik Mannheim, 10.11.2014 inovex... über inovex und den Referenten 2 Entwicklungsumgebungen... Übersicht Einführung Packer Konfiguration Packer

Mehr

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012

Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012 Serverprovisioning in einer dynamischen Infrastruktur Systemmanagement LinuxTag 2012 vorgestellt am 23.05.2012 Alexander Pacnik inovex GmbH Wir nutzen Technologien, um unsere Kunden glücklich zu machen.

Mehr

Serbest Hammade / Resh serbest.hammade@hammade.de. Do, 21. Juni 2012

Serbest Hammade / Resh serbest.hammade@hammade.de. Do, 21. Juni 2012 Serbest Hammade / Resh serbest.hammade@hammade.de Do, 21. Juni 2012 Continuous Integration Konzept von Continuous Integration Vorraussetzungen für CI Vor- & Nachteile Jenkins Beispiel mit Java Beispiel

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Entwicklungswerkzeuge

Entwicklungswerkzeuge Entwicklungswerkzeuge Werner Struckmann & Tim Winkelmann 10. Oktober 2012 Gliederung Anforderungen Projekte Debugging Versionsverwaltung Frameworks Pattern Integrated development environment (IDE) Werner

Mehr

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm 5.7.2012 Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment Henning Blohm 5.7.2012 1 Z2 ist ein radikal neuer* Ansatz für System Life-Cycle Management in Java * jedenfalls für Java Ein Builtool?

Mehr

Continuous Database Integration mit Flyway

Continuous Database Integration mit Flyway XP Days Germany 2015 Continuous Database Integration mit Flyway Sandra Parsick info@sandra-parsick.de @SandraParsick Zur meiner Person Freiberufliche Softwareentwickler und Consultant im Java- Umfeld Schwerpunkte:

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

Mehr

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1 Automatisierte Erstellung von Software-Builds und -dokumentationen Teil 1 Autoren: Hagedorn, Robert; Denninger, Oliver Kontakt: {hagedorn denninger}@fzi.de Web: http://zfs.fzi.de Ort, Datum: Karlsruhe,

Mehr

Kontinuierliche Architekturanalyse. in 3D

Kontinuierliche Architekturanalyse. in 3D Kontinuierliche Architekturanalyse in 3D Stefan Rinderle Bachelor an der HS Karlsruhe Master "Software Engineering" in München / Augsburg Seit 2013 bei Payback 2 Software-Visualisierung Visualisierung

Mehr

Continuous Integration im medizinischen Bereich

Continuous Integration im medizinischen Bereich Philipp Schröter Fachbereich für Informatik Continuous Integration im medizinischen Bereich Ein praktisches Beispiel Gliederung 1. Einleitung 2. Relevanz im medizinischen Bereich 3. Continuous Integration

Mehr

Apache - Maven. Java-Erstellung auf Plugin-Basis. Martin Hoffmann

Apache - Maven. Java-Erstellung auf Plugin-Basis. Martin Hoffmann Apache - Maven Java-Erstellung auf Plugin-Basis Martin Hoffmann Übersicht Was ist Maven Alternative: Ant Arbeitsweise von Maven Standard Eigene Konfigurationen & Plugins Arbeiten im Team Aufteilen von

Mehr

Configuration Management

Configuration Management Configuration Management Software Engineering Projekt WS 06/07 Fachbereich Softwaretechnik (IV) Technische Universität Berlin Oliver Frank 1 Einleitung...3 2 Version Management... 4 2.1 Lagerung der Dateien...4

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

Mehr

Continuous Integration mit TravisCI u.a. Jan Steemann

Continuous Integration mit TravisCI u.a. Jan Steemann Continuous Integration mit TravisCI u.a. Jan Steemann Ziele für heute sind: eine kleine Applikation und Code-Änderungen daran automatisiert zu testen Build-Status und Coverage zu veröffentlichen die Code-Coverage

Mehr

Continuous Delivery. für Java Anwendungen. Axel Fontaine 28.10.2010. Software Development Expert

Continuous Delivery. für Java Anwendungen. Axel Fontaine 28.10.2010. Software Development Expert 28.10.2010 Continuous Delivery für Java Anwendungen Axel Fontaine Software Development Expert twitter.com/axelfontaine blog.axelfontaine.eu business@axelfontaine.eu Ceci n est pas une build tool. Ceci

Mehr

Ein ganz normaler Tag. Eclipse und Ich

Ein ganz normaler Tag. Eclipse und Ich Ein ganz normaler Tag Eclipse und Ich 2008 Bredex GmbH Version 2.3 Agenda Motivation 08:32 Uhr Los geht s 08:47 Uhr Einstieg in die tägliche Arbeit 08:48 Uhr Support 09:30 Uhr Standup Meeting 10:12 Uhr

Mehr

Gliederung. Einführung. Kleines Maven Wörterbuch. Maven im Unternehmenseinsatz. Was bringt die Zukunft?

Gliederung. Einführung. Kleines Maven Wörterbuch. Maven im Unternehmenseinsatz. Was bringt die Zukunft? Build Management, Teil 2: Apache Maven mehr als nur Ant Facelifting Kristian Köhler Steffen Schluff Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Gliederung

Mehr

Invoca Systems. Application Development Framework. Systemdokumentation. Vers. 1.2.2 / 08.02.2005. copyright (c) by Invoca Systems, 4304 Giebenach

Invoca Systems. Application Development Framework. Systemdokumentation. Vers. 1.2.2 / 08.02.2005. copyright (c) by Invoca Systems, 4304 Giebenach Invoca Systems Application Development Framework Systemdokumentation Vers. 1.2.2 / 08.02.2005 Konzepte: Architektur (Backend Applicationserver Client) Java-Database Objectrelational Mapping (=> Doku) Java

Mehr

NEUES AUS DER ENTWICKLUNG. April 2015

NEUES AUS DER ENTWICKLUNG. April 2015 NEUES AUS DER ENTWICKLUNG April 2015 Agenda R&D Redwood Produkt-Upgrade und -Releasestrategie Namensänderungen / -Konventionen Produkt Updates Schlusswort INTRODUCTION R&D April 2015 Unser Team 20+ Mitarbeiter

Mehr

Continuous Delivery in der Realität eines Großunternehmens

Continuous Delivery in der Realität eines Großunternehmens Continuous Delivery in der Realität eines Großunternehmens Agile World, 28. Juni 2013 Christian Weber 01 Continuous Delivery Das Versprechen Das Versprechen Sch Entspanntes Release Time To Market 3 02

Mehr

Auswahl eines Continuous Integrationsservers

Auswahl eines Continuous Integrationsservers Auswahl eines Continuous Integrationsservers Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Version: 1.0 www.oio.de info@oio.de Gliederung Einführung Auswahlkriterien Fazit 2 Gliederung

Mehr

Praktikum Softwarearchitektur. Apache Maven. Klaus-Christian Saalfeld. 18. Juni 2011. FernUniversität in Hagen

Praktikum Softwarearchitektur. Apache Maven. Klaus-Christian Saalfeld. 18. Juni 2011. FernUniversität in Hagen Praktikum Softwarearchitektur Apache Maven 18. Juni 2011 FernUniversität in Hagen Inhaltsverzeichnis 1. Einführung in Maven 1 2. Grundlagen 1 2.1. Erste Schritte mit Maven........................... 1

Mehr

Bekannte Tools in einem agilen Ansatz. Frank Schwichtenberg SourceTalkTage 2013 Göttingen, 2.10.2013

Bekannte Tools in einem agilen Ansatz. Frank Schwichtenberg SourceTalkTage 2013 Göttingen, 2.10.2013 Bekannte Tools in einem agilen Ansatz Frank Schwichtenberg SourceTalkTage 2013 Göttingen, 2.10.2013 Vorher Lange Planungszeiten und Releasezyklen Manche Features brauchten lange und wurden nicht gebraucht

Mehr

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4. SEW Übung EMFText 1 Aufgabe Erstellen Sie eine textuelle Domänenspezifische Sprache Domain-specific Language (DSL) mit dem Werkzeug EMFText. Die Sprache soll dazu dienen Formulare (Fragen, Antworttypen

Mehr

Nils Hartmann Gerd Wütherich. Build my bundle! oder: Es muss nicht immer PDE sein

Nils Hartmann Gerd Wütherich. Build my bundle! oder: Es muss nicht immer PDE sein Nils Hartmann Gerd Wütherich Build my bundle! oder: Es muss nicht immer PDE sein Inhalt» Theorie» Bauen von Software» Projekte, Projektbeschreibungen und Definition von Abhängigkeiten» Integration bestehender

Mehr

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre. Copyright 2010, MATHEMA Software GmbH 1 Wer bin ich > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.Net > Schwerpunkte Software

Mehr

Software-Engineering Grundlagen des Software-Engineering

Software-Engineering Grundlagen des Software-Engineering Software-Engineering Grundlagen des Software-Engineering 7.2 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger SWE: 7.2 Programmentwicklung und Debuggen mit IDE

Mehr

Maven Tycho. Google Guice. Mylyn für Modelle. 7. bis 11. November 2011. www.jax.de. Eclipse meets. Plus CD! The Westin Grand München Arabellapark

Maven Tycho. Google Guice. Mylyn für Modelle. 7. bis 11. November 2011. www.jax.de. Eclipse meets. Plus CD! The Westin Grand München Arabellapark M Plus CD! JE TZ ER T N! 4.11 Deutschland 9,80 Österreich 10,80, Schweiz sfr 19,20 4.2011 KE Neue Serie: The Making of an Eclipse Project eclipse magazin VO R The Westin Grand München Arabellapark Anmeldung

Mehr

Release Automation für Siebel

Release Automation für Siebel June 30 th 2015 Release Automation für Siebel Stefan Kures Agenda + Herausforderungen + Lösung mit Automic + Vorteile + Resultate 3 Property of Automic Software. All rights reserved Siebel als zentrale

Mehr

Platform as a Service (PaaS) & Containerization

Platform as a Service (PaaS) & Containerization Platform as a Service (PaaS) & Containerization Open Source Roundtable Bundesverwaltung; Bern, 23. Juni 2016 André Kunz Chief Communications Officer Peter Mumenthaler Head of System Engineering 1. Puzzle

Mehr

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken

Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken Werkzeuggestützte Softwareprüfungen Statische Analyse und Metriken Dennis Hardt 21.06.2006 Gliederung Statische Analyse Definition, Arbeitsweise, Werkzeuge Angewandt auf ein Projekt Statische Analyse selbst

Mehr

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner c.leithner@celix.at www.celix.at September 2015 celix Solutions GmbH Spezialist für Team Collaboration und IT Prozess Management Agile

Mehr

Software Configuration Management. Referat von Jens Zastrow Software Engineering Projekt WS 2001/2002

Software Configuration Management. Referat von Jens Zastrow Software Engineering Projekt WS 2001/2002 Software Configuration Management Referat von Jens Zastrow Software Engineering Projekt WS 2001/2002 Inhalt Motivation SCM-Aufgaben Item-Identifikation Identifikation Version/Release Management Change

Mehr

Operation am offenen Herzen

Operation am offenen Herzen Operation am offenen Herzen Case Study zur erfolgreichen JEE-7 Migration Dirk Ehms, GameDuell GmbH GameDuell Plattform Topologie Classic Platform Social Platform 64x Frontend Server OpenMQ 16x Frontend

Mehr

Die perfekte Build-Pipeline

Die perfekte Build-Pipeline Die perfekte Build-Pipeline Ohne Mühen Webprojekte bauen Qafoo GmbH October 25, 2012 Die perfekte Build-Pipeline 1 / 44 What comes next? Willkommen Die perfekte Build-Pipeline 2 / 44 Über uns Jakob Westhoff

Mehr

Software Engineering in

Software Engineering in Software Engineering in der Werkzeuge für optimierte LabVIEW-Entwicklung Folie 1 Best Practices Requirements Engineering Softwaretest Versionsmanagement Build- Automatisierung Folie 2 Arbeiten Sie im Team?

Mehr

Welches hätten Sie denn gerne? Markus Stäuble, CTO, namics (deutschland) GmbH

Welches hätten Sie denn gerne? Markus Stäuble, CTO, namics (deutschland) GmbH Buildsysteme Welches hätten Sie denn gerne? Markus Stäuble, CTO, namics (deutschland) GmbH Kurze Vorstellung: about me Markus Stäuble CTO bei namics (deutschland) GmbH Programmierung mit Java seit Version

Mehr

Testers Architects Enterprise Dev Consultants Professionals VB6 Devs Part-Timers Hobbyists Students Enthusiasts Novices

Testers Architects Enterprise Dev Consultants Professionals VB6 Devs Part-Timers Hobbyists Students Enthusiasts Novices Visual Studio Team System 15. Mai 2006 TU Dresden Oliver Scheer Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH Agenda Einführung in Visual Studio Team System Demo Fragen

Mehr

Die Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006

Die Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006 Die Integration von Requirements Management, Software Configuration Management und Change Management mit der MKS Integrity Suite 2006 Oliver Böhm MKS GmbH Agenda Überblick Der Entwicklungsprozess: Requirements

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Bau dir dein eigenes Eclipse

Bau dir dein eigenes Eclipse Eclipse Builds mit Bau dir dein eigenes Eclipse Viele Unternehmen setzen auf Eclipse als IDE, reichern diese aber um eigene Plug-ins und ein eigenes Branding an. Wie in [1] beschrieben, war der Prozess

Mehr

Softwarequalität sicherstellen mit Sonar

Softwarequalität sicherstellen mit Sonar Softwarequalität sicherstellen mit Sonar Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Hochschule München Michaela Lutz München, den 07. Juni 2013 1 Gliederung Was ist Sonar? Komponenten

Mehr

Einreichung zum Call for Papers

Einreichung zum Call for Papers Internet: www.aitag.com Email: info@aitag.com Einreichung zum Call for Papers Kontaktinformationen Sven Hubert AIT AG Leitzstr. 45 70469 Stuttgart Deutschland http://www.aitag.com bzw. http://tfsblog.de

Mehr

Open-Source-Werkzeugkasten für Software-QS. 05.05.2011 10:15-11:15 Uhr Zagrebsaal I

Open-Source-Werkzeugkasten für Software-QS. 05.05.2011 10:15-11:15 Uhr Zagrebsaal I Open-Source-Werkzeugkasten für Software-QS 05.05.2011 10:15-11:15 Uhr Zagrebsaal I 1 Speaker Tobias Joch inovex GmbH Head of Solution Development leichtgewichtige und hochskalierende (Web-) Anwendungen

Mehr

Ant - das Java Build-Tool

Ant - das Java Build-Tool Hauptseminar Ant - das Java Build-Tool Funktionalität, Mächtigkeit und Praxiserfahrungen Betreuer: Vortragender: Dipl.Inf. Thorsten Strufe Christoph Lühr Gliederung Build-Tools Aufgaben und Probleme Ant

Mehr

OSGi: Toolunterstützung und Softwareentwicklungsprozess

OSGi: Toolunterstützung und Softwareentwicklungsprozess OSGi: Toolunterstützung und Softwareentwicklungsprozess Thementag OSGi 03.11.2009 Autor: Thorsten Vogel Agenda Herausforderungen der OSGi Entwicklung: Beispiel Webanwendung Was wird entwickelt? - Bundles

Mehr

Architecture Blueprints

Architecture Blueprints Architecture Blueprints Daniel Liebhart, Peter Welkenbach, Perry Pakull, Mischa Kölliker, Michael Könings, Markus Heinisch, Guido Schmutz Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET,

Mehr

mitp Professional Maven 3 Konfigurationsmanagement mit Java von Martin Spiller 1. Auflage

mitp Professional Maven 3 Konfigurationsmanagement mit Java von Martin Spiller 1. Auflage mitp Professional Maven 3 Konfigurationsmanagement mit Java von Martin Spiller 1. Auflage Maven 3 Spiller schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv 2011 Verlag C.H.

Mehr

Kontinuierliches Bauen und Testen von Software mit Jenkins. Hochschule München Benjamin Keeser, 31. Mai 2013

Kontinuierliches Bauen und Testen von Software mit Jenkins. Hochschule München Benjamin Keeser, 31. Mai 2013 Kontinuierliches Bauen und Testen von Software mit Jenkins Hochschule München Benjamin Keeser, 31. Mai 2013 Erklärung der Selbstständigkeit Hiermit versichere ich, die vorliegende Arbeit selbstständig

Mehr

Produktionsfähige Applikationen

Produktionsfähige Applikationen Produktionsfähige Applikationen Seite 1 Mario Siegenthaler, Robert Siegenthaler Produktionsfähige Applikationen www.bedag.ch Mario.Siegenthaler@bedag.ch Robert.Siegenthaler@bedag.ch Seite 2 Agenda Die

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Docker für Java Entwickler

Docker für Java Entwickler Wir unternehmen IT. Docker für Java Entwickler Dr. Roland Huß, ConSol* Software GmbH JavaLand, 24.3.2015 Agenda Docker Crash Intro Docker für Java Entwickler Integrationstests Paketierung von Anwendungen

Mehr

MSDN Webcast: Team Foundation Server Mehr als nur eine Versionsverwaltung! Visual Studio Team System (Teil 1 von 10) Veröffentlicht: 20.

MSDN Webcast: Team Foundation Server Mehr als nur eine Versionsverwaltung! Visual Studio Team System (Teil 1 von 10) Veröffentlicht: 20. MSDN Webcast: Team Foundation Server Mehr als nur eine Versionsverwaltung! Visual Studio Team System (Teil 1 von 10) Veröffentlicht: 20. Februar 2008 Presenter: Neno Loje, MVP für Team System www.teamsystempro.de

Mehr

Abhängigkeiten und Git

Abhängigkeiten und Git Abhängigkeiten und Git Continuous Lifecycle 2013, 11.11.2013 René Preißel (@RenePreissel) Bjørn Stachmann (@old_stachi) Inhalt 1. Über welche Abhängigkeiten reden wir? 2. Wie versionieren? a. Ein großes

Mehr

Holistic Software Escrow from TIMBUS

Holistic Software Escrow from TIMBUS Holistic Software Escrow from TIMBUS Agenda Context: TIMBUS Klassisches Escrow: Beschreibung Motivation Risiken Idee: Holistic Escrow Methode Beispieleigenschaft 24. April 2012 timbusproject.net 2012 2

Mehr

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle

Gradle. Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle Gradle Ein kompakter Einstieg in das moderne Build-Management-System ---> Mit einem Geleitwort von Hans Dockter, Erfinder von Gradle von Joachim Baumann 1. Auflage Gradle Baumann schnell und portofrei

Mehr