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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Das neue Android Build System

Das neue Android Build System Das neue Android Build System Besser Builden mit Gradle JUGS Event, 18. Juni 2015 Kaspar von Gunten, Ergon Informatik AG whois( kvg ) Software-Engineering seit 2002 Entwicklung in Java (Client/Server,

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

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

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

Projektmanagement mit Maven

Projektmanagement mit Maven Projektmanagement mit Maven (Ausarbeitung des Seminars vom 9.12.2008) von Sebastian Karbe(ii5849@fh-wedel.de) (Technische Informatik) Inhaltsverzeichnis 1 Grundlegendes 2 1.1 Entstehung.................................

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 als Garant für hohe SW-Qualität

Continuous Integration als Garant für hohe SW-Qualität Continuous Integration als Garant für hohe SW-Qualität Hochschule Neu-Ulm 29.01.2015 1 msg systems auf einen Blick Unternehmensgruppe International Unabhängig Über 4.500 Mitarbeiter Umsatz: 583 Millionen

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

Schöner Bauen mit Maven und Nexus

Schöner Bauen mit Maven und Nexus Schöner Bauen mit Maven und Nexus Johannes Caspary johannes.caspary@cms.hu-berlin.de Skripte zur Automatisierung des Kompilierens und Testens von Quellcode beschleunigen die Entwicklung neuer Software.

Mehr

Maven 2. Konfigurationsmanagement mit Java. Martin Spiller. Lifecycles, Dependencies, Projektbeziehungen

Maven 2. Konfigurationsmanagement mit Java. Martin Spiller. Lifecycles, Dependencies, Projektbeziehungen Martin Spiller Maven 2 Konfigurationsmanagement mit Java Lifecycles, Dependencies, Projektbeziehungen Repositories, Plugins, Properties und Filtering Profile, Reporting, Dokumentation, Qualitätsmanagement

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

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

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

Bauen mit Tycho. Mirko Swillus Qualitype AG 18.10.2012, JUG Saxony

Bauen mit Tycho. Mirko Swillus Qualitype AG 18.10.2012, JUG Saxony Bauen mit Tycho Mirko Swillus Qualitype AG 18.10.2012, JUG Saxony Bauen mit Tycho 1. Vorstellung und Motivation 2. Bauen 3. Laufzeitcontainer: Equinox 4. Repositories 5. Testen 6. Schwierigkeiten und Lösungen

Mehr

Martin. Spiller. Maven 3. Konfigurationsmanagement mit Java

Martin. Spiller. Maven 3. Konfigurationsmanagement mit Java Martin Spiller Maven 3 Konfigurationsmanagement mit Java Symbole.checkstyle 266.classpath 209.project 209.ruleset 271 @alias 202 @component 335 @execute 202 @expression 203 @parameter 196 alias 335 expression

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

Software Engineering. 13. Configuration Management. Franz-Josef Elmer, Universität Basel, HS 2012

Software Engineering. 13. Configuration Management. Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering 13. Configuration Management Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 13. Configuration Management 2 Übersicht Dokumentation, Installationssoftware, etc.

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

C. Schädel, C. Schmidt-Casdorff iks GmbH. Provisioning unter OSGi für Test und Betrieb

C. Schädel, C. Schmidt-Casdorff iks GmbH. Provisioning unter OSGi für Test und Betrieb C. Schädel, C. Schmidt-Casdorff iks GmbH Provisioning unter OSGi für Test und Betrieb Einleitung Überblicksvortrag Beispiele idealisiert Mischformen existieren Problemstellung des Provisioning unter OSGi

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

Maven und Maestro Build Server

Maven und Maestro Build Server Maven und Maestro Build Server Matthias Hofstetter 1 and Christof Luethi 2 Bern University of Applied Sciences CH-2500 Biel/Bienne Switzerland hofsm1@bfh.ch, 1 luthc1@bfh.ch 2 Zusammenfassung In diesem

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

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

1. Ausgangslage. 2. Bisheriger Build- und Deployment-Prozess

1. Ausgangslage. 2. Bisheriger Build- und Deployment-Prozess Modernisierung des Entwicklungsprozesses - ein Projektbericht Markus Heinisch Principal Consultant September 2013 Neue und höhere Anforderungen an eine Entwicklungsabteilung eines Finanzinstituts erfordern

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

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

Continuous Integration mit Hudson

Continuous Integration mit Hudson Continuous Integration mit Hudson Grundlagen und Praxiswissen für Einsteiger und Umsteiger von Simon Wiest 1. Auflage Continuous Integration mit Hudson Wiest schnell und portofrei erhältlich bei beck-shop.de

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

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

Continuous Delivery in der Praxis

Continuous Delivery in der Praxis Dr. Halil-Cem Gürsoy @hgutwit! adesso AG Continuous Delivery in der Praxis Über mich Principal Architect @ adesso AG seit 15 Jahre Software-Entwicklung > davor in wissenschaftlichem Umfeld Verteilte Enterprise-Systeme

Mehr

Lieferung 7.2 Werkzeugintegration/- kette mit Konfiguration für automatisiertes Build und Testen

Lieferung 7.2 Werkzeugintegration/- kette mit Konfiguration für automatisiertes Build und Testen Lieferung 7.2 Werkzeugintegration/- kette mit Konfiguration für automatisiertes Build und Testen für das BMBF-Projekt Modellgetriebene agile Entwicklung für mobile Anwendungen (ModAgile Mobile) Arbeitspaket

Mehr

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05.

IT Engineering Continuous Delivery. Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet. Alexander Pacnik Karlsruhe, 20.05. IT Engineering Continuous Delivery Development Tool Chain Virtualisierung, Packer, Vagrant und Puppet Alexander Pacnik Karlsruhe, 20.05.2014 Einleitung... worum es in diesem Vortrag geht Ziele Continuous

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

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

Where Do I Begin? Stefan Reinhold

Where Do I Begin? Stefan Reinhold Where Do I Begin? Wie starte ich ein Enterprise-Projekt mit Maven? Stefan Reinhold IT Informatik GmbH, Ulm Inhalt Einleitung Rahmenbedingungen Gründe für Maven Bestandsaufnahme Zukunft Infrastruktur Softwareüberblick

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

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

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

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

Die 7 Wege zum Clean Code

Die 7 Wege zum Clean Code Die 7 Wege zum Clean Code Über mich Claudio Altamura Softwareentwickler Certified ScrumMaster Interessen Agile Softwareentwicklung Softwarearchitekturen Java ccd2013@claudioaltamura.de 2 Inhalt 1. Statische

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

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Dipl.-Inf (FH) Matthias Müller 09.06.2010 Regressionstests Unter einem Regressionstest

Mehr

Agile Java-Entwicklung in der Praxis

Agile Java-Entwicklung in der Praxis Agile Java-Entwicklung in der Praxis Michael Hüttermann O'REILLY* Beijing Cambridge Famham Köln Paris Sebastopol Taipei Tokyo Inhalt Prolog Einleitung XI XV Teil I: Die Methodik agiler Softwareentwicklung

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

OWB Referenzarchitektur, Releasemanagement und Deployment. Carsten Herbe metafinanz - Informationssysteme GmbH

OWB Referenzarchitektur, Releasemanagement und Deployment. Carsten Herbe metafinanz - Informationssysteme GmbH OWB Referenzarchitektur, Releasemanagement und Deployment Carsten Herbe metafinanz - Informationssysteme GmbH Wir fokussieren mit unseren Services die Herausforderungen des Marktes und verbinden Mensch

Mehr

ECLIPSE PLUG-IN. Redwood Anwendertage 2015

ECLIPSE PLUG-IN. Redwood Anwendertage 2015 ECLIPSE PLUG-IN Redwood Anwendertage 2015 Übersicht Was ist Eclipse? Welche Voraussetzungen benötige ich? Wie wird das Plug-In installiert Welche Konfigurationen sind sinnvoll? Tipps & Tricks Was ist Eclipse

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

Stuttgarter Test-Tage am 21. & 22. März 2013

Stuttgarter Test-Tage am 21. & 22. März 2013 Continuous Integration & Testing meets BPM meets Reality Stuttgarter Test-Tage am 21. & 22. März 2013 Jonas Grundler, Managing Consultant, NovaTec GmbH Jonas.Grundler@novatec-gmbh.de 2002-2006: Berater

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

Oberseminar Software-Entwicklung: Maven. Das Software-Projekt-Verwaltungspragramm - Maven. Oberseminar Software-Entwicklung. Autor: Martin Hoffmann

Oberseminar Software-Entwicklung: Maven. Das Software-Projekt-Verwaltungspragramm - Maven. Oberseminar Software-Entwicklung. Autor: Martin Hoffmann Das Software-Projekt-Verwaltungspragramm - Maven Oberseminar Software-Entwicklung Autor: Martin Hoffmann 1/13 Inhaltsverzeichnis Oberseminar Software-Entwicklung: Maven 1. Einführung...3 2. Der Ansatz

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

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

Continuous Integration

Continuous Integration Continuous Integration im Umfeld Agiler Software Entwicklung Prof. Dr. Simon Wiest 3. NOSER Technologie Impulse 2013 27.09.2013 München D Prof. Dr. Simon Wiest 34102 Informatik 1 Agenda CI in 7 Schritten

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Continuous Delivery mit Docker

Continuous Delivery mit Docker Continuous Delivery mit Docker Berlin Expert Days 2014 Dr. Halil-Cem Gürsoy adesso AG 04.04.14 http://www.flickr.com/photos/jpmartineau/501718334/ Definition und Provisionierung eines Linux-Containers

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

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart, 03.04.2014

Mobility mit IBM Worklight Erste Schritte zu einer mobilen App. Benjamin Stein, Consultant Stuttgart, 03.04.2014 Mobility mit IBM Worklight Erste Schritte zu einer mobilen App Benjamin Stein, Consultant Stuttgart, 03.04.2014 Agenda Was ist IBM Worklight eigentlich? Hintergrund und Idee, Architektur und Bestandteile

Mehr

Abschlussvortrag Masterarbeit: Operationalizing Architecture in an agile Software Projec

Abschlussvortrag Masterarbeit: Operationalizing Architecture in an agile Software Projec Abschlussvortrag Masterarbeit: Operationalizing in an agile Software Projec Freie Universität Berlin, Institut für Informatik February 2, 2015 Übersicht 2 Was ist Softwarearchitektur? Softwarearchitektur

Mehr

Agiles Konfigurationsmanagement mit Open-Source-Werkzeugen. Gunther Popp

Agiles Konfigurationsmanagement mit Open-Source-Werkzeugen. Gunther Popp Agiles Konfigurationsmanagement mit Open-Source-Werkzeugen Gunther Popp Gunther Popp arbeitet als freier Softwarearchitekt, Berater und Autor in München Schwerpunkte: Konzeption und Implementierung von

Mehr

Renée Bäcker. Perl $foo Magazin

Renée Bäcker. Perl $foo Magazin Renée Bäcker Renée Bäcker Perl Renée Bäcker Perl $foo Magazin Renée Bäcker Perl $foo Magazin OTRS Renée Bäcker Perl $foo Magazin OTRS u.v.m Früher... Am Anfang steht der Kunde... dann kommt der Auftrag

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

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Neue Technologien effizient nutzen Ehningen, 3. Juli 2014 Rodney Krick rk@aformatik.de aformatik Training & Consulting GmbH & Co. KG

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN

WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN WELTOFFEN EINSATZ DES TFS IN HETEROGENEN UMGEBUNGEN (.NET UND JAVA) - WIE MAN DEN TEAM FOUNDATION SERVER IN BEIDEN WELTEN NUTZEN KANN AGENDA Motivation TFS Überblick TFS Architektur & Clients Planung Entwicklung

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

Konfigurationsmanagement mit Maven

Konfigurationsmanagement mit Maven Konfigurationsmanagement mit Maven Manfred Wolff, wolff@manfred-wolff.de, www.manfred-wolff.de Michael Albrecht, malbrecht@neusta.de, wwwneusta.de Im Entwicklungsstadium von Software spielen Managementfragen

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

Versionsverwaltung mit SVN

Versionsverwaltung mit SVN Versionsverwaltung mit SVN Jan-Philipp Kappmeier Technische Universität Berlin 11. 04. 2012 Versionsverwaltung Typische Situation in der Softwareentwicklung Mehrere Personen arbeiten an einem Projekt Arbeiten

Mehr

intersoft AG Continuous Integration Der einfache Weg zu besserer Software Copyright 2006 by intersoft AG

intersoft AG Continuous Integration Der einfache Weg zu besserer Software Copyright 2006 by intersoft AG intersoft AG Continuous Integration Der einfache Weg zu besserer Software Inhalt Was ist Continuous Integration? Was soll Continuous Integration? Wie geht Continuous Integration? Wie sieht Continuous Integration

Mehr

Continuous Integration mit Hudson

Continuous Integration mit Hudson Continuous Integration mit Hudson Dr. Simon Wiest www.simonwiest.de Java User Group Switzerland 26.04.2010, Technopark Zürich Gestatten, Hudson. Agenda 10 Schritte Überblick Über den Referenten:

Mehr

Java Web Services mit Apache Axis2 Entwickler

Java Web Services mit Apache Axis2 Entwickler Thilo Frotscher, Dapeng Wang, Marc Teufel Java Web Services mit Apache Axis2 Entwickler Vorwort 15 1 Einleitung 25 1.1 Entstehung 26 1.2 Unterstützte Standards 28 1.3 Was beinhaltet Axis2? 29 1.4 Warum

Mehr