Maven NetBeans Platform RCP Development Aljoscha Rittner Sepix GmbH, NetBeans Dreamteam Member
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Maven RCP Projekte Projekttypen für Maven based Platform Projects > Maven Archetype
Maven RCP Projekte Maven NetBeans-Anwendung > Die Basis für eine NetBeans Platform Application > Maven App Builder Project MultiModule Reactor Project (packaging = pom) > Application Konfigurations Projekt für Platformabhängigkeiten packaging = nbm-application, Parent ist Pom-Reaktor = Suite > Ein weiteres POM für Branding Informationen packaging = nbm, Parent ist Pom-Reaktor = Modul > Auf Wunsch (bei Aktivierung durch den Assistenten) ein Start- Modul packaging = nbm, Parent ist Pom-Reaktor = Modul
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Unterschiede zu Ant-Projekten Keine Library-Wrapper mehr Keine speziellen project.properties, project.xml und sonstige Konfigurationen, die speziell für NetBeans wären. Resourcen getrennt von Java-Dateien Mehr Handarbeit in xml-Dateien (noch) – Project- Properties Dialog ist „übersichtlich“ Branding getrennt von Applikation Abhängigkeiten werden komplett anders gebunden > aber mit einem Sourcecode Helferlein
Unterschiede zu Ant-Projekten The Way of Maven: > Pom.xml für Projekte > Trennung von Sourcecode und Ressourcen > Build-System besteht aus Plugins (Moyos), die selbst wieder aus einem Repositoriy geladen werden > Maven ist nicht nur ein Build-System, Maven ist ein Projektverwaltungssystem > CI-System, Issue-Tracking, Repository-Verwaltung, Plugin- Verwaltung, Dependency-Management > Maven ist keine Scripting-Sprache (wie Ant), alles basiert auf Standard-Strukturen von Projekten.
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Alle Abhängigkeiten sind Artifakte Fremdbibliotheken nur aus Repositories > Dafür einen Suchdialog für Klassen und Pakete in allen regisitrierten Repositories
Alle Abhängigkeiten sind Artifakte Fremdbibliotheken nur aus Repositories > Neue Hilfsfunktion im Sourcecode
Alle Abhängigkeiten sind Artifakte
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Das Buildsystem basiert auf Plugins Pluginmanagement im Haupt-Pom
Das Buildsystem basiert auf Plugins Plugin-Nutzung in den Modulen und Suites
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Hudson Buildserver Hudson als CI (Continious Integration) Server
Hudson Buildserver Hudson als CI (Continious Integration) Server
Agenda ● Maven RCP Projekte ● Drei Projekttypen für Plattform Projekte ● Unterschiede zu Ant-Projekten ● Alle Abhängigkeiten sind Artifakte ● Build System ist Maven + NetBeans Moyo's ● Hudson Build Server ● Artifactory als Repository
Artifactory als Repository Artifactory > als Unternehmensrepository für nicht öffentliche Builds, Artifakte und Projekte > als Artifact Lieferant für legacy JAR Files > als Mirror > für schlecht erreichbare Repositories > als stabile Basis von Artifacts die in fremden Reps unter Entwicklung stehen > führt mehrere Repositories unter einer URL zusammen > als UI Frontend zur Verwaltung eines Repositories
Artifactory als Repository Artifactory > Direkter Sprung von Hudson
Artifactory als Repository Artifactory > Repository Browser
Ausblick NetBeans 7 mit Maven3 Support (since M2) > Maven3embedder by default > "Build with Dependencies" now automatically locates the root aggregator project for even deeply nested modules, making this action more useful for source trees that make heavy use of snapshot dependencies. There is no need to manually define a "reactor location". > If your project's classpath includes annotation processors registered for use by default (i.e. in META-INF/services), they will now be run by the IDE's editor
Bücher Maven: The Definitive Guide > Online: Better Builds with Maven > Online: Apache Articles and Books >
Fragen & Antworten