Das Build-Tool Apache Maven hält zunehmend Einzug in Projekte. Es ist aber mehr als "nur" ein Build-Tool. In seinem Vortrag „Automatischer Build mit Maven“ stellt Stefan Scheidt Maven vor und beleuchtet einige fortgeschrittene Themen.
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
Dieser Vortrag fand ebenfalls im Rahmen der Bonner Runde statt. Dort habe ich die neue Version des Build- und Projectmanagementools Maven vorgestellt. Nach einem kurzen Vergleich mit existierenden Lösungen habe ich die Konzepte und Features von Maven2 erläutert.
When discussing about build systems, still Ant and Maven are the most prominent. This presentation is from a talk about characteristics of Ant and Maven, how they compare and if its worth migrating between both.
Slides are in German, but IT topics tend to be understandable even by non native speakers.
Build Patterns - Patterns und Best Practices für den Build ProzessRalf Abramowitsch
Mein Vortrag auf der Konferenz "Continuous Lifecycle 2013" am 12.11.2013 in Karlsruhe: Build Patterns - Patterns und Best Practices für den Build Prozess.
Dabei wurden insgesamt 6 Buildpatterns vorgestellt: Build Script Injection, Build-Skelett, Ablagen-unabhängige Build-Skripte, Infrastruktur-unabhängige Build-Skripte, Kumulative Builds und Gated Commits. Alle Patterns basieren auf dem Buch "Beautiful Builds" von Roy Osherove.
OSDC 2013 | Continuous Integration in data centers by Michael ProkopNETWAYS
Every developer is familiar with continuous integration; however, in data centers it is still largely disregarded. But many paradigms are transmittable and especially in times of “Infrastructure as a Code” with tools like Puppet, Chef, Vagrant & Co, also practicable. The advantages of automated documentation generation, standardized quality checks and controlled deployment, speak for themselves.
The follow up project of the Open Source Continuous Integration Server “Jenkins”, jenkins-debian-glue (http://jenkins-debian-glue.org/), allows continuous integration when applying Debian-/Ubuntu packages. With every commit in the version control system repository, you get automatically built Debian packages. Quality checks and upgrade checks allow the early recognition of risks, before resultant packages will be rolled out. By now, many renowned open source projects, like Grml (http://grml.org/), PostgreSQL (https://wiki.postgresql.org/wiki/Apt) und Icinga (http://icingabuild.dus.dg-i.net/), apply jenkins-debian-glue.
This presentation will show how you can realize continuous integration with Debian packages and which possibilities exist for quality checks.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
Maven2 - Die nächste Generation des Buildmanagements?Thorsten Kamann
Dieser Vortrag fand ebenfalls im Rahmen der Bonner Runde statt. Dort habe ich die neue Version des Build- und Projectmanagementools Maven vorgestellt. Nach einem kurzen Vergleich mit existierenden Lösungen habe ich die Konzepte und Features von Maven2 erläutert.
When discussing about build systems, still Ant and Maven are the most prominent. This presentation is from a talk about characteristics of Ant and Maven, how they compare and if its worth migrating between both.
Slides are in German, but IT topics tend to be understandable even by non native speakers.
Build Patterns - Patterns und Best Practices für den Build ProzessRalf Abramowitsch
Mein Vortrag auf der Konferenz "Continuous Lifecycle 2013" am 12.11.2013 in Karlsruhe: Build Patterns - Patterns und Best Practices für den Build Prozess.
Dabei wurden insgesamt 6 Buildpatterns vorgestellt: Build Script Injection, Build-Skelett, Ablagen-unabhängige Build-Skripte, Infrastruktur-unabhängige Build-Skripte, Kumulative Builds und Gated Commits. Alle Patterns basieren auf dem Buch "Beautiful Builds" von Roy Osherove.
OSDC 2013 | Continuous Integration in data centers by Michael ProkopNETWAYS
Every developer is familiar with continuous integration; however, in data centers it is still largely disregarded. But many paradigms are transmittable and especially in times of “Infrastructure as a Code” with tools like Puppet, Chef, Vagrant & Co, also practicable. The advantages of automated documentation generation, standardized quality checks and controlled deployment, speak for themselves.
The follow up project of the Open Source Continuous Integration Server “Jenkins”, jenkins-debian-glue (http://jenkins-debian-glue.org/), allows continuous integration when applying Debian-/Ubuntu packages. With every commit in the version control system repository, you get automatically built Debian packages. Quality checks and upgrade checks allow the early recognition of risks, before resultant packages will be rolled out. By now, many renowned open source projects, like Grml (http://grml.org/), PostgreSQL (https://wiki.postgresql.org/wiki/Apt) und Icinga (http://icingabuild.dus.dg-i.net/), apply jenkins-debian-glue.
This presentation will show how you can realize continuous integration with Debian packages and which possibilities exist for quality checks.
Nur wenn Softwaretests einfach durchzuführen sind, werden sie im Projekt auch wirklich eingesetzt und verhelfen zu mehr Softwarequalität. Idealerweise geschieht dies automatisiert.
Containerized End-2-End Testing - JUG Saxony DayTobias Schneck
Bei der Konzeption von End-2-End-Tests ist eine der größten Probleme die Frage, wie die Testausführung robust, reproduzierbar und skalierbar gestaltet werden kann. Einen eleganten Ausweg bieten in Container verpackte Testumgebungen. Dadurch wird es möglich, einen definierten Systemstand reproduzierbar und performant zu testen. Anhand der Open-SourceTools „Sakuli“ und „Docker“ wird gezeigt, wie parallele GUI-Tests in nativen Umgebungen Web- und Rich-Client-Anwendungen performant testen.
Continuous Delivery Pipelines setzen identische Konfigurations- und Deployment-Prozesse von Entwicklung bis Betrieb voraus. Um diese zu ermöglichen, zeigt der Referent, wie virtuelle Maschinen (Linux/Windows) mit Packer (packer.io) erstellt, mit Puppet konfiguriert und mit Vagrant in virtuellen Umgebungen verwendet werden. Der Fokus liegt zum einen auf der einfachen und schnellen Verwendung vorkonfigurierter VMs für die lokale Entwicklung und zum anderen auf den Herausforderungen und Erfahrungen, die sich bei der Verwendung von Puppet ergeben, wenn der gleiche Konfigurations-Code für verschiedene Umgebungen verwendet wird.
Wer professionelle Webentwicklung betreibt, braucht einen gut funktionierenden Deployment-Prozess, um Updates von den lokalen Rechnern der Entwickler problemlos auf Test-, Stage- und Live-Server zu bekommen ohne dort die Datenbestände zu gefährden.
In dieser Session zeigen wir das Drupal-Deployment in einem neuen Workflow.
Mit von der Partie sind:
Features
Strongarm
Update- und Drush-Scripts
Updatescript- und Drushscript-Prozessor
Git und eine Repository-Strategie
Jenkins Continous Integration
Codemetriken und Codeanalyse beim Deployment
Was hat sich in den letzten Jahren in dem Ökösystem von Perl 5 getan? In dieser Präsentation stelle ich einige Themen vor.
Diese Präsention habe ich anlässlich der Wiederbelebung von Hamburg.pm am 5. September 2017 gehalten.
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
HTML5 ist überall - im Web, Mobile und natürlich auch auf den Desktop. Die große Stärke an HTML5 ist nicht nur, dass diese Plattform übergreifend unterstützt wird, sondern dass es immer mehr Features aus der Desktop-Welt bietet. Dennoch erfordert die Entwicklung von Desktop Anwendungen auf Basis von HTML & JavaScript neue Frameworks und Sprachen. Das Open Source Projekt Electron.NET verbindet ihr bekanntes C# & ASP.NET Core KnowHow mit den Möglichkeiten von Electron. In Kombination von C# und HTML5 können hoch performante Desktop Geschäftsanwendung für Windows, Mac und Linux entwickelt werden. Sie steigen mit den Grundlagen von Electron.NET ein und werden dann mit den wichtigsten Tools und Vorgehensweisen vertraut gemacht. Mit diesen Infos steigen Sie rasch zum versierten Cross-Platform Entwickler mit .NET auf.
JBoss AS 7 als Plattform moderner Enterprise-Anwendungengedoplan
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
Zu den „dienstältesten“ Open-Source-Applikationsservern gehört mit JBoss eine Plattform, die uns schon seit mehr als 10 Jahren als Basis für Unternehmensanwendung zur Verfügung steht. Für die Version 7 wurde der Server in weiten Teilen neu implementiert. Das Ergebnis kann sich sehen lassen: Eine übersichtlichere Struktur, erstaunliche Startzeiten, geringerer Ressourcenverbrauch und betriebstaugliche Administrationswerkzeuge sind einige der Neuerungen. Der eher auf die Softwareentwicklung fokussierte Betriebsmodus früherer JBoss-Versionen wurde zudem um den Domain Mode ergänzt, der administrative Belange besser berücksichtigt und den Server in professionelle Betriebsumgebungen einbindet. Der Vortrag gibt einen Überblick über die Struktur des JBoss AS 7 und zeigt seinen Funktionsumfang anhand einiger Praxisbeispiele.
Dirk Weil ist Geschäftsführer der GEDOPLAN GmbH in Bielefeld. Er ist seit 1998 als Berater im Bereich Java und Java EE tätig und arbeitet u. a. mit JBoss und GlassFish. Er ist Fachbuchautor, schreibt Artikel für Fachmagazine, hält Vorträge und leitet Seminare zu zahlreichen Themen.
Weitere Infos:
- http://www.gedoplan-it-training.de
- http://www.gedoplan-it-consulting.de
- http://javaeeblog.wordpress.com
- http://expertenkreisjava.blogspot.de
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
Kubernetes ermöglicht eine Automatisierung der Bereitstellung, Skalierung und Verwaltung von verteilten Docker-Container. Der Einstieg, die Umsetzung und Wartung hingegen ist eine extreme Herausforderung und kostet am Ende nicht nur viel Geld, sondern auch Ihre Nerven. Microsoft Azure bietet mit den Azure Kubernetes Services (Kurz AKS) die Erlösung, der soeben genannten Schmerzen. In dieser Session zeigt Ihnen der Docker- und Azure-Experte Gregor Biswanger einen Überblick von Kubernetes und wie einfach Azure für uns eine Kuberenetes-Landschaft herbeizaubern kann.
Containerized End-2-End Testing - JUG Saxony DayTobias Schneck
Bei der Konzeption von End-2-End-Tests ist eine der größten Probleme die Frage, wie die Testausführung robust, reproduzierbar und skalierbar gestaltet werden kann. Einen eleganten Ausweg bieten in Container verpackte Testumgebungen. Dadurch wird es möglich, einen definierten Systemstand reproduzierbar und performant zu testen. Anhand der Open-SourceTools „Sakuli“ und „Docker“ wird gezeigt, wie parallele GUI-Tests in nativen Umgebungen Web- und Rich-Client-Anwendungen performant testen.
Continuous Delivery Pipelines setzen identische Konfigurations- und Deployment-Prozesse von Entwicklung bis Betrieb voraus. Um diese zu ermöglichen, zeigt der Referent, wie virtuelle Maschinen (Linux/Windows) mit Packer (packer.io) erstellt, mit Puppet konfiguriert und mit Vagrant in virtuellen Umgebungen verwendet werden. Der Fokus liegt zum einen auf der einfachen und schnellen Verwendung vorkonfigurierter VMs für die lokale Entwicklung und zum anderen auf den Herausforderungen und Erfahrungen, die sich bei der Verwendung von Puppet ergeben, wenn der gleiche Konfigurations-Code für verschiedene Umgebungen verwendet wird.
Wer professionelle Webentwicklung betreibt, braucht einen gut funktionierenden Deployment-Prozess, um Updates von den lokalen Rechnern der Entwickler problemlos auf Test-, Stage- und Live-Server zu bekommen ohne dort die Datenbestände zu gefährden.
In dieser Session zeigen wir das Drupal-Deployment in einem neuen Workflow.
Mit von der Partie sind:
Features
Strongarm
Update- und Drush-Scripts
Updatescript- und Drushscript-Prozessor
Git und eine Repository-Strategie
Jenkins Continous Integration
Codemetriken und Codeanalyse beim Deployment
Was hat sich in den letzten Jahren in dem Ökösystem von Perl 5 getan? In dieser Präsentation stelle ich einige Themen vor.
Diese Präsention habe ich anlässlich der Wiederbelebung von Hamburg.pm am 5. September 2017 gehalten.
Electron.NET: Cross-Platform Desktop Software mit ASP.NET CoreGregor Biswanger
HTML5 ist überall - im Web, Mobile und natürlich auch auf den Desktop. Die große Stärke an HTML5 ist nicht nur, dass diese Plattform übergreifend unterstützt wird, sondern dass es immer mehr Features aus der Desktop-Welt bietet. Dennoch erfordert die Entwicklung von Desktop Anwendungen auf Basis von HTML & JavaScript neue Frameworks und Sprachen. Das Open Source Projekt Electron.NET verbindet ihr bekanntes C# & ASP.NET Core KnowHow mit den Möglichkeiten von Electron. In Kombination von C# und HTML5 können hoch performante Desktop Geschäftsanwendung für Windows, Mac und Linux entwickelt werden. Sie steigen mit den Grundlagen von Electron.NET ein und werden dann mit den wichtigsten Tools und Vorgehensweisen vertraut gemacht. Mit diesen Infos steigen Sie rasch zum versierten Cross-Platform Entwickler mit .NET auf.
JBoss AS 7 als Plattform moderner Enterprise-Anwendungengedoplan
JBoss AS 7 als Plattform moderner Enterprise-Anwendungen
Zu den „dienstältesten“ Open-Source-Applikationsservern gehört mit JBoss eine Plattform, die uns schon seit mehr als 10 Jahren als Basis für Unternehmensanwendung zur Verfügung steht. Für die Version 7 wurde der Server in weiten Teilen neu implementiert. Das Ergebnis kann sich sehen lassen: Eine übersichtlichere Struktur, erstaunliche Startzeiten, geringerer Ressourcenverbrauch und betriebstaugliche Administrationswerkzeuge sind einige der Neuerungen. Der eher auf die Softwareentwicklung fokussierte Betriebsmodus früherer JBoss-Versionen wurde zudem um den Domain Mode ergänzt, der administrative Belange besser berücksichtigt und den Server in professionelle Betriebsumgebungen einbindet. Der Vortrag gibt einen Überblick über die Struktur des JBoss AS 7 und zeigt seinen Funktionsumfang anhand einiger Praxisbeispiele.
Dirk Weil ist Geschäftsführer der GEDOPLAN GmbH in Bielefeld. Er ist seit 1998 als Berater im Bereich Java und Java EE tätig und arbeitet u. a. mit JBoss und GlassFish. Er ist Fachbuchautor, schreibt Artikel für Fachmagazine, hält Vorträge und leitet Seminare zu zahlreichen Themen.
Weitere Infos:
- http://www.gedoplan-it-training.de
- http://www.gedoplan-it-consulting.de
- http://javaeeblog.wordpress.com
- http://expertenkreisjava.blogspot.de
Verteilte Anwendungen bei Azure mit Docker und KubernetesGregor Biswanger
Kubernetes ermöglicht eine Automatisierung der Bereitstellung, Skalierung und Verwaltung von verteilten Docker-Container. Der Einstieg, die Umsetzung und Wartung hingegen ist eine extreme Herausforderung und kostet am Ende nicht nur viel Geld, sondern auch Ihre Nerven. Microsoft Azure bietet mit den Azure Kubernetes Services (Kurz AKS) die Erlösung, der soeben genannten Schmerzen. In dieser Session zeigt Ihnen der Docker- und Azure-Experte Gregor Biswanger einen Überblick von Kubernetes und wie einfach Azure für uns eine Kuberenetes-Landschaft herbeizaubern kann.
Queste slide sono una sintesi delle attività SEO, Social per le testate on line. Le abbiamo preparate per una presentazione con i reparti web di alcune testate on line.
Enterprise application market (solutions, delivery model, verticals and geogr...Allied Market Research
Enterprise application are software designed to meet the unique needs and objectives of the organizations. It includes applications such as CRM, ERP, SCM, BI, BPM, CMS, and EAM etc. Traditionally, enterprise applications were designed and developed specifically for back-office transactional activities such as accounting, production and inventory control and order management etc.
Sesión Ley de Víctimas - Presentación de la Alcaldía de Medellínconcejomedellin
Presentación de la Alcaldía de Medellín para la sesión "Implementación de la Ley de Víctimas en Medellín"
Visite nuestra página web: http://www.concejodemedellin.gov.co
Präsentation des 6. Community Trainings der Community ITmitte.de in Köthen.
Lassen Sie sich empfehlen zu über 100 IT, Informatik, Software - Jobs, Stellen, Praktika in Mitteldeutschland. Die Partner der Community ITmitte.de bieten Angebote für Bewerber, Fachkräfte, Leiter sowie Diplomanden, Master- und Bachelor-Studenten und Schüler für Informatik-Berufe in Mitteldeutschland, Thüringen, Sachsen-Anhalt und Sachsen, insbesondere Leipzig, Halle, Jena, Bitterfeld-Wolfen, Leuna, Zeitz, Gera, Zwickau, Plauen, Erfurt, Magdeburg.
Spring Boot - Wird Spring jetzt wirklich einfach?jenspresser
Spring ist ein verbreitetes Framework, hat aber den Ruf sehr komplex zu sein und eine steile Lernkurve zu erfordern. Spring Boot will hier ansetzen und den Einstieg für Spring Projekte massiv vereinfachen.
In dem Vortrag will ich das Spring Boot Framework vorstellen, was es bietet, welche Ziele es anstrebt und welche Ansätze diese erfüllen sollen. Am Ende sollte jeder für sich die Frage im Titel beantworten können.
http://www.opitz-consulting.com/go/3-6-11 --- Softwareentwicklung, -test und -betrieb können durch Virtualisierung viele Vorteile erzielen. In diesem Zusammenhang werden häufig Werkzeuge für die Bereitstellung von Umgebungen eingesetzt. Verschiedene Werkzeuge adressieren aber unterschiedliche Einsatzszenarien. Wo im Applikationslebenszyklus können diese Werkzeuge sinnvoll eingesetzt werden und wie sieht es mit Kosten und Nutzen aus? ---- Unser Senior Software Architect Richard Attermeyer stellte bei der W Jax am 5.11.2014 in München die Tools Vagrant, Puppet und Docker im Einzelnen vor und erläuterte ihren Nutzen anhand von Use Cases und Live Demos. ---- Weitere Infos: https://jax.de/wjax2014/sessions/vagrant-puppet-docker-fuer-entwickler-und-architekten ---- Über uns: Als führender Projektspezialist für ganzheitliche IT-Lösungen tragen wir zur Wertsteigerung der Organisationen unserer Kunden bei und bringen IT und Business in Einklang. Mit OPITZ CONSULTING als zuverlässigem Partner können sich unsere Kunden auf ihr Kerngeschäft konzentrieren und ihre Wettbewerbsvorteile nachhaltig absichern und ausbauen.---- Über unsere IT-Beratung: http://www.opitz-consulting.com/go/3-8-10 ---- Unser Leistungsangebot: http://www.opitz-consulting.com/go/3-8-874 ---- Karriere bei OPITZ CONSULTING: http://www.opitz-consulting.com/go/3-8-5
Ein Blick in die Kristallkugel mit dem Ziel spannende und relevante Online-Trends für das Jahr 2003 hervorzusagen. Auf der Liste sind:
- JSP 2.0
- XHTML 2
- Platform for Privacy Preferences
- Watermarking
- C#
- Multimedia Home Platform
- Semantic Web
- WLAN
- XSL-FO
- SVG
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
Das Dokumentieren einer API wird oft als mühsame, aber wesentliche Aufgabe angesehen. Mit OpenAPI / Swagger können wir eine API-Dokumentation angenehm einfach in ASP.NET Core integrieren. Gregor Biswanger zeigt, wie eine API-Dokumentation mit einer Benutzeroberfläche hinzugefügt wird, mit der wir die API testen können.
Als Nächstes erfahren wir, wie wir Attribute und Konventionen verwenden, um die generierte OpenAPI-Spezifikation zu verbessern. Abschließend wird gezeigt, wie wir mit der Authentifizierung, Versionierung und Anpassung der Benutzeroberfläche umgehen.
Diese Präsentation zeigt wie man Hybrid Apps mit dem Ionic 2 Framework erstellt kann. Dazu wird eine Beispielapp auf Basis der Open Movie Database programmiert.
Michael Sebel zeigt wie man ein Blog – oder ein Blog eines Kunden – mit Shortcodes, Filtern, Actions, Widgets, Themes und Theme Features sowie eigenen Admin-Menüstrukturen, Backends, Page Templates und ein bisschen Ajax individualisieren kann.
Code Beispiele Download:
http://static.blog.blogwerk.com/files/wp-development.zip
Ein Blick in die Kristallkugel mit dem Ziel spannende und relevante Online-Trends für das Jahr 2006 hervorzusagen. Auf der Liste sind:
- Desktop Widgets
- 2D Barcoding
- JSR-170/286
- REST
- Lightweight APIs und JSON
- Presence und Instant Messaging
- Home Networking
- Microformats/Structured Blogging
- Online Identity
- Antiphishing
In diesem Webcast bekommen Sie Tipps und Hilfen auf dem Weg zu einer aufgeräumten Java Landschaft, mit der Sie Kosten und Risiken minimieren. Unsere Lizenzierungs- und Java-Experten sprechen dafür u. a. über diese Fragen:
* Wann ist Java "frei"? Und wann nicht?
* Wie Sie Java Installationen entdecken: Scanning-Tools und Inventarisierungslösungen
* Was steckt hinter Java, JDK und JRE? ... Mal genau erklärt
* Welche Open JDKs gibt es? Vor- und Nachteile, Supportmöglichkeiten
* Was wird morgen? Lifecycle Management, Release-Cadence-Wechsel
* Welche Oracle Lizenz-Metriken werden wann angewandt? Prozessor Core Metrik und NUP richtig zählen, Preislisten
* Geht es auch "ohne"?
* Welche Applikationen basieren auf Java?
* Wem gehört mein Java? Spezialfragen im Umfeld von Virtualisierung und Cloud
* Wie lassen sich Kosten sparen? Kostenminimierungsansätze
Die Aufzeichnung finden Sie hier:
https://youtu.be/k1ZpxoES18I
In diesem Webcast bekommen Sie Tipps und Hilfen auf dem Weg zu einer aufgeräumten Java Landschaft, mit der Sie Kosten und Risiken minimieren. Unsere Lizenzierungs- und Java-Experten sprechen dafür u. a. über diese Fragen:
* Wann ist Java "frei"? Und wann nicht?
* Wie Sie Java Installationen entdecken: Scanning-Tools und Inventarisierungslösungen
* Was steckt hinter Java, JDK und JRE? ... Mal genau erklärt
* Welche Open JDKs gibt es? Vor- und Nachteile, Supportmöglichkeiten
* Was wird morgen? Lifecycle Management, Release-Cadence-Wechsel
* Welche Oracle Lizenz-Metriken werden wann angewandt? Prozessor Core Metrik und NUP richtig zählen, Preislisten
* Geht es auch "ohne"?
* Welche Applikationen basieren auf Java?
* Wem gehört mein Java? Spezialfragen im Umfeld von Virtualisierung und Cloud
* Wie lassen sich Kosten sparen? Kostenminimierungsansätze
Die Aufzeichnung finden Sie hier: https://youtu.be/abVeIGmxYB0
Folien zum Webcast mit Fritz Wein Weinhappl (Oracle) und Uwe Küchler (OPITZ) am 27. April 2021.
Die Aufzeichnung finden Sie unter: https://youtu.be/un4gzCsmfwg
Im Bereich der professionellen Softwareentwicklung hat sich in den letzten 10 Jahren viel getan. In diesem Vortrag schauen wir uns an, was es eigentlich bedeutet, professionelle und nicht nur funktionierende Software zu entwickeln. Gerade auf der persönlichen und Teamebene unterscheidet sich die Disziplin der Softwareentwicklung in vielen Bereichen von den Anforderungen die noch vor einigen Jahren Gültigkeit besaßen.
Die Kernänderungen werden im Vortrag anhand von 10 Thesen verdeutlicht, erläutert und soll darüber zum Nachdenken über den Berufsethos eines Softwareentwicklers anregen. Neben Entwicklern richtet sich der Vortrag vor allem auch an Projektverantwortliche, da auch aufgezeigt wird, dass es weitere wichtige Aspekte neben den rein funktionalen Anforderungen zu beachten gilt.
Zum Referenten:
Richard Attermeyer arbeitet bei OPITZ CONSULTING als Senior Solution Architect im Bereich Technologiemanagement und Innovation. Dort leitet er unter anderem das Architecture Board. Er beschäftigt sich seit Jahren mit flexiblen Systemarchitekturen und deren Wechselwirkungen mit Entwicklungsprozessen und Unternehmens- und Managementkulturen. Hot Topics: CI/CD, Technologiemanagement, flexible Systemarchitekturen und DevOps.
3. Wer bin ich? Software-Entwickler und Architekt Trainer und Coach Sprecher und Autor
4. (Keine) Motivation In diesem Vortrag keine Motivation für Build-Automatisierung, aber ein paar Ziele: Automatisiertes Testen Continuous Integration Code-Qualität
5. Was ist Maven? (1) „Software Project Management Tool“ DeklarativesBuild-System Convention overConfiguration Wiederverwendung durch Plugins Dependency Management Tool für technisches Projekt-Reporting
6. Was ist Maven? (2) Open-Source-Projekt bei Apache Entstanden 2002 für diverse Apache-Projekte Ziel: Vereinheitlichen von Build Verteilung Erstellen einer Projekt-Webseite Don‘trepeatyourself! Siehe auch http://maven.apache.org/what-is-maven.html
7. Das „Project Object Model“ (POM) Beschreibt ein Projekt für Maven... „Artefakt-Koordinaten“ Informationen für die Webseite Was enthält das Projekt? Welche Abhängigkeiten hat das Projekt? ...als XSD-basierte XML-Datei
9. Convention over Configuration Diese Projektbeschreibung wird durch Voreinstellungen ergänzt, ... ... die im „Super POM“ definiert sindhttp://maven.apache.org/pom.html#The_Super_POM Dadurch kann man jetzt schon kompilieren,(JUnit-)Tests ausführen, JAR bauen, JAR verteilen,Projekt-Website generieren...
11. Maven Plugins Im Kern ist Maven eine Laufzeitumgebung für Plugins Diese stellen die eigentlichen Build-Funktionenals „Goals“ zur Verfügung Das „Super POM“ macht die gebräuchlichsten Plugins verfügbar (compile, „test“, jar, war, ...) Weitere können in Projekt-POM registriert werden
13. BuildLifecycle (1) Sequenz von „Build-Phasen“ Eingebaute Lifecycle: „clean“, „default“, „site“ Auszug aus Default Lifecycle: validate test verify compile package install deploy int.-test test-comp.
14. Build Lifecycle (2) Plugin Goals können an Lifecycle-Phasen gebunden werden Binding wird durch Packaging Type ausgewählt Maven gibt bereits Bindungen vor Plugins können neue Bindungen definieren Bindungen und Lifecycle anpassen neue PackagingTypes definieren
15. Beispiel: Binding für jar/war Auszug aus dem Lifecycle Binding für Packaging Type jar und war
16. Beispiel: Custom Binding (1) <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sql-maven-plugin</artifactId> <!-- ... --> <executions> <execution> <id>create-schema-before-test</id> <!-- ... --> <execution> <execution> <id>drop-schema-after-test</id> <!-- ... --> <execution> </executions> </plugin> Auszug aus einem POM: Konfiguration für SQL Plugin mit zwei Executions
17. Beispiel: Custom Binding (2) <execution> <id>create-schema-before-test</id> <phase>pre-integration-test</phase> <goals> <goal>execute</goal> </goals> <configuration> <srcFiles> <srcFile> src/main/sql/schema-create.sql </srcFile> </srcFiles> </configuration> </execution> Auszug aus einem POM: Execution-Konfiguration für die Phase „pre-integration-test“
18. POMs und Vererbung POMs können von einem Parent POM erben Wurzel ist das „Super POM“ Ein Parent POM kann vererben: Plugin-Konfigurationen Dependencies vieles mehr... Häufig in Verbindung mit Multimodul-Projekten
19. Multimodul-Projekte Ein Maven-Projekt kann nur ein Artefakt produzieren Maven forciert dadurch die Aufteilung eines Projekts auf mehrere Sub-Projekte Diese können durch ein Multimodul-Projekt zusammengefasst und gemeinsam gebaut werden Multimodul-POM ist meist auch Parent POM
21. Dependency Management Dependencies beschreiben Abhängigkeiten zuJava-Bibliotheken (JARs) werden über „Artefakt-Koordinaten“ spezifiziert können durch „Scopes“ (compile, test, runtime, provided, ...) qualifiziert werden werden bei Bedarf aus einem „RemoteRepository“ heruntergeladen
23. MavenRepositories (1) Stellen Artefakte bereit Lokal: im Filesystem („~/.m2/repository“) Remote: als „Web Service“ zum Download Default RemoteRepository: http://repo1.maven.org/maven2 Weitere Repositories können im Projekt-POM registriert werden
27. Repository Manager (3) Empfehlung: Repository Manager einsetzen! Pro Projekt Unternehmensweit Ggf. gestaffelt: Unternehmen und pro Projekt Einige Repository-Manager-Implementierungen: SonatypeNexus http://nexus.sonatype.org/ JFrogArtifactoryhttp://www.jfrog.org/products.php Archivahttp://archiva.apache.org/
28. Site-Generierung Webseite mit „Projektsteckbrief“ Einbetten von JavaDoc und Projektdoku Einbetten von Berichten durch Reporting-Plugins: Checkstyle, JUnit/TestNG, Corbatura, PMD, FindBugs, JDepend, ... Beispiele: Siehe Open-Source-Projekte, die Maven verwenden...
29. Maven und IDEs Eclipse eclipse: MavenPlugin für Eclipse m2eclipse: EclipsePlugin für Maven Eclipse IAM: Integration von eclipse.org NetBeans Ab Version 6.7 direktes Ausführen von Maven IntelliJ Build-In-Support für Import von Maven-Projekten
30. Maven und Continuous Integration Support durch diverse CI-Server CruiseControl Continuum Hudson TeamCity Bamboo ...
31. Mavenund OSGi Auf den ersten Blick passen Maven und OSGi gut zusammen Die Dependency-Konzepte unterscheiden sich aber grundlegend... Und: „Wer ist der Boss“? Es gibt aber Integrationssupport Maven-Bundle-Pluginhttp://tinyurl.com/66q93b PaxConstructhttp://www.ops4j.org/projects/pax/construct SpringSourceBundlorhttp://www.springsource.org/bundlor Tycho http://docs.codehaus.org/display/M2ECLIPSE/Tycho+project+overview
32. Maven 3 Umfangreiches Refactoring der Codebase Neue API für Artifact Resolution Bessere Unterstützung für IDE-Integration Kompatibilität mit Maven 2 wird durch Integrationstests sichergestellt Siehe auchhttp://www.sonatype.com/events/meetup0309/jason-on-maven3
33. Fazit und Bewertung Standardisierung zahlt sich bei einer großen Zahlvon Projekten aus Schnelle Ergebnisse bei Standard-Anforderungen Für komplexere Anpassungen ist jedoch umfangreiche Einarbeitung nötig Passt evtl. nicht bei sehr individuellen Anforderungen(bzw. sehr großer Aufwand)