Schöner Bauen mit Maven und Nexus

Die Seite wird erstellt Marlene Sonntag
 
WEITER LESEN
Schöner Bauen mit Maven und Nexus
Johannes Caspary | johannes.caspary@cms.hu-berlin.de

                                              Software-Entwicklung                        jeder Phase entstehen so weitere Doku-
                                              im Allgemeinen                              mente wie Lastenhefte, Modelle, Quell-
                                                                                          code und Testfälle.
                                              Viele Informatiker erinnern sich wahr-           Der oben beschriebene Software-
                                              scheinlich noch aus dem Studium oder        entwicklungsprozess bezieht sich vor
                                              der Ausbildung an den Softwareent-          allem auf größere Projekte, aber auch
                                              wicklungsprozess und seine Phasen.          mittlere und kleine profitieren von
                                              Besonders anschaulich – wenn auch           einem strukturierten Vorgehen. Im
                                              etwas veraltet – ist hierbei das Wasser-    universitären Bereich werden deshalb
                                              fallmodell mit den folgenden Phasen:        die Prinzipien der Softwareentwicklung
                                              • Anforderungserhebung: Klärung der         berücksichtigt.
                                                Frage, was benötigt wird
                                              • Entwurf: Formalisierung (Modellie-
                                                rung) der Anforderungen                   Automatisierungsmöglichkeiten
                                              • Implementierung: Umsetzung des            in der Entwicklung
                                                Entwurfs
                                              • Test: Klärung der Frage, ob die Soft-     Die Anforderungserhebung ist der Aus-
                                                ware die richtigen Dinge tut (und das     gangspunkt für den gesamten Entwick-
                                                richtig)                                  lungsprozess. Eine ausführliche und
                                              • Verteilung: Phase der Produktivschal-     zielorientierte Analyse ist zur Erstellung
                                                tung der Software                         von Software dringend erforderlich.
                                                                                          Zwar existieren diverse Werkzeuge zur
                                              Die meisten Entwicklungsmodelle ba-         professionellen Anforderungserhebung
                                              sieren im Wesentlichen auf diesen Ab-       und zum Anforderungsmanagement,
                                              läufen. Allerdings gibt es bei den agilen   aber in der Regel hat man es mit ein-
                                              Entwicklungsmethoden die Forderung,         fachen Textdokumenten zu tun – was oft
                                              Test und Implementierung in der Rei-        auch völlig ausreicht.
                                              henfolge umzudrehen (siehe zur test-             In der Stufe des Entwurfs wird das
                                              getriebenen Entwicklung u. a. [1]). Nach    noch relativ ungenaue Bild der gefor-
                                              Ablauf aller Phasen entsteht ein soge-      derten Software formalisiert. Dabei
                                              nanntes Artefakt – die fertige Software.    bedient man sich der Visualisierung in
                                                   Ebenso herrscht Konsens, dass man      Form von graphischen Modellen – seien
Skripte zur Automatisierung des Kompi-        die genannten Schritte wiederholen          sie nun statisch, ablauf- oder datenfluss-
lierens und Testens von Quellcode beschleu-   muss. Es ist unrealistisch anzunehmen,      orientiert. Auch wenn die Modelle einen
nigen die Entwicklung neuer Software.         dass qualitativ hochwertige Software        hohen Detaillierungsgrad und Nähe
Neben dem weit verbreiteten Apache Ant        „im Ganzen“ in einem Durchlauf ent-         zur Implementierung besitzen können,
existieren für die Java-Entwicklung zahl-     wickelt werden kann. Man spricht bei        findet etwa die graphische Programmie-
reiche Alternativen, von denen Apache         der Wiederholung der Phasen von einer       rung noch relativ selten Anwendung.
Maven besonders hervorgehoben wird. Ihre      iterativen Entwicklung. Dabei wird die      Im Wesentlichen geht es hier noch da-
Stärken können diese Buildwerkzeuge in        Software sukzessive vervollständigt. Die    rum, „Bilder zu malen“, die eine Brücke
Verbindung mit Repository-Managern wie        Ergebnisse der Iterationen bezeichnet       zwischen den Anforderungen und der
Sonatype Nexus entfalten.                     man als Inkremente. Zum Abschluss           späteren konkreten Umsetzung bauen.

30          cms-journal 34 / Juni 2011
Erst in der Stufe der Implemen-                   der sich von anderen verbreiteten Build-                      Wie die Namen der Phasen erkennen
tierung können wir auf Grundlage des                   werkzeugen wie Ant [7] oder make unter-                 lassen, unterstützt Maven nicht nur im
Quellcodes mit der Automatisierung                     scheidet.2                                              Rahmen der Implementierung das Kom-
des Entwicklungsprozesses beginnen.                         Ein wesentliches Prinzip von Maven                 pilieren, sondern auch die Schritte des
Abhängig vom Ausmaß der Automati-                      ist die sogenannte „Convention Over                     Tests (test für Unit-Tests und integration-
sierbarkeit des Prozesses unterstützen                 Configuration“ [8]. Gemeint ist damit,                  test für Tests auf Komponenten) und der
Werkzeuge die Phasen Implementie-                      dass man aus einer Konvention heraus                    Verteilung (install zur Speicherung auf
rung, Testen und Verteilung. An dieser                 für die Projektstruktur plausible Stan-                 dem lokalen und deploy zur Verteilung
Stelle kommen sogenannte Buildwerk-                    dardwerte annimmt. So werden beispiels-                 auf einen entfernten Rechner).
zeuge zum Einsatz. Ein Build umfasst                   weise Java-Klassen, die im Namen das
den Ablauf gewisser Routinen im Er-                    Wort „Test“ enthalten, automatisch als                  Auflösen von Projektabhängigkeiten –
stellungsprozess, wie Kompilierung und                 Unit-Test3 interpretiert [9]. Dennoch ist               Dependency Management
das Ausführen von Tests, und endet mit                 eine Anpassung der Variablen, wie der
der Erstellung eines Artefakts. Im Kon-                Verweise auf die Quelltextordner oder                   Die Definition von Abhängigkeiten eines
text von Java handelt es sich üblicher-                das Outputverzeichnis, explizit in der                  Projekts zu anderen Artefakten (insbe-
weise um JAR- oder WAR-Dateien.1                       Projektbeschreibungsdatei möglich. Bei                  sondere JAR-Dateien), erfolgt über die
     Im Folgenden wird als Beispiel                    der Entwicklung kann man sich nun                       Projektbeschreibungsdatei pom.xml.
eines Buildwerkzeugs Apache Maven                      entscheiden, ob man die vorgegebene                     Um die Wiederverwendbarkeit zu er-
erläutert. Um Maven im Vergleich zu                    Struktur übernimmt oder sie dem eige-                   höhen, können sie durch Vererbung
anderen Werkzeugen abzugrenzen, wird                   nen Projekt anpasst.                                    oder Import an andere Projekte weiter-
auch auf die derzeit verbreiteten Alter-                    Im Zusammenhang mit Maven be-                      gegeben werden.
nativen kurz eingegangen.                              gegnet man häufig dem Begriff Plugin [10].                   Die Auflistung dient nicht nur der
                                                       Ein Maven-Plugin ist ein Zusatzpro-                     reinen Beschreibung der Software. Maven
                                                       gramm, das den funktionalen Kern von                    nutzt die Informationen vor allem für
Das Buildwerkzeug Maven                                Maven erweitert. Tatsächlich stellt der                 seinen Mechanismus zur Auflösung von
                                                       Maven-Kern nur ein leichtgewichtiges                    Abhängigkeiten (Dependency-Management).
Maven [2] ist ein Projekt der Apache                   Framework zur Ausführung von Plugins                    Ausgehend von den gefundenen Abhän-
Software Foundation [3] und dient zur                  dar, die fast sämtliche den Buildprozess                gigkeiten sucht Maven nach Artefakten
Umsetzung der Buildautomatisierung                     betreffenden Aufgaben übernehmen [11].                  in Verzeichnissen mit einer definierten
für Java-Projekte. Das aktuelle Release                                                                        Struktur, den sogenannten Repositories.
zur Zeit der Erstellung dieses Artikels ist            Standardphasen in Maven                                 Zuerst wird das lokale Repository auf
Maven 3.0.3, aber auch das Release 2.2.1                                                                       dem Rechner durchsucht. Ist dort das
ist noch weit verbreitet. Eine sehr gute               Der Buildprozess in Maven wird, ähnlich                 gesuchte Artefakt nicht in der korrekten
Anleitung zur Software auf Deutsch                     wie beim Wasserfallmodell, in Phasen                    Version vorhanden, sucht Maven in
findet sich unter [4].                                 eingeteilt. Im Standardlebenszyklus                     einem entfernten Repository.
      Zur Ausführung von Maven gibt es                 eines Builds, der hier verkürzt wiederge-                    Standardmäßig lädt Maven fehlende
die Kommandozeilenanwendung mvn,                       geben ist, sind die Phasen Validierung                  Artefakte von seinem zentralen Reposi-
die für die Verwendung in Skripten hilf-               (validate), Kompilieren (compile), Test                 tory [13] herunter. Dadurch erhält man
reich ist. Allerdings lässt sich Maven                 (test), Paketierung (package), Integra-                 zwar immer den aktuellen Versionsstand,
auch über Plugins in Entwicklungsum-                   tionstest (integration-test), Verifikation              besitzt aber wenig Einfluss auf die aus-
gebungen wie Eclipse [5] oder IntelliJ                 (verify), Installation (install) und Vertei-            gewählten Artefakte. Durch Anpassung
IDEA [6] integrieren.                                  lung (deploy) definiert [12].                           der Maven-Einstellungen kann aber auch
      Das wichtigste Dokument für ein                       Die Phasen werden sequenziell                      auf alternative Repositories verwiesen
Maven-Projekt ist die Projektbeschrei-                 abgearbeitet. So bewirkt das Kommando                   werden.
bungsdatei pom.xml. Dort werden zen-                   mvn test, dass neben der Phase test auch
tral die Eigenschaften des Projekts                    validate und compile ausgeführt werden,                 Alternativen zu Maven
konfiguriert. Maven interpretiert bei                  nicht aber package. Durch die strikte
seiner Ausführung lediglich diese Kon-                 Vorgabe des Ablaufs des Buildprozesses                  Abgesehen von allen Vorzügen, die
figuration und braucht keine zusätz-                   kann Maven, im Vergleich zu Ant, in                     Maven zweifelsohne bietet, gibt es auch
lichen Skriptanweisungen. Damit ver-                   Standardanwendungen auf die explizite                   Kritikpunkte. Zum einen gibt Maven
tritt Maven einen deklarativen Ansatz,                 Vorgabe von Zielen und deren Abhän-                     durch das Prinzip „Convention Over
                                                       gigkeiten verzichten.                                   Configuration“ Projekten eine recht
1 JAR = Java Archiv, Dateiformat zur Paketierung von                                                           strikte Form vor. Sicher sind strukturelle
  Java-Bibliotheken; WAR = Web Archiv, Dateiformat     2 Dennoch können Ant-Skripte auch in Maven inte-        und ablauftechnische Anpassungen
  zur Speicherung von servletbasierten Java-             griert werden.
  Webanwendungen. Die Archive liegen jeweils im        3 Unit-Tests testen die Teilfunktionalität eines Pro-   auch mit Maven möglich, sie erfordern
  ZIP-Format vor.                                        gramms (z. B. Methoden).                              allerdings unter Umständen einen

                                                                                                        Schöner Bauen mit Maven und Nexus          31
relativ hohen Aufwand.4 Zum anderen                       fakte gespeichert, die ebenfalls hinterlegte   selbstverwaltetes Repository der Zugriff
gilt die Methode, das Projekt über XML-                   Projektbeschreibungsdatei pom.xml              auf diese proprietären Pakete ermöglicht
Dateien zu beschreiben, als zu statisch                   enthält die Metadaten.                         werden, ohne die rechtlichen Vorgaben
und unhandlich.5                                               Bei der Lokalinstallation speichert       zu verletzen.
      Neben Maven existieren weitere                      Maven seine durch das Dependency-Ma-                 Die Verwendung eines eigenen Re-
Build-Managementwerkzeuge, die mit                        nagement aufgelösten Abhängigkeiten            positories hat für eine Organisation viele
unterschiedlichen Strategien die genann-                  in ein Repository auf dem Rechner.             Vorteile. Man besitzt dadurch nicht nur
ten Schwachpunkte angehen. Zur Erhö-                      Nicht dort befindliche Dateien werden          Kontrolle über den Inhalt (z. B. durch
hung der Flexibilität verwenden andere                    anschließend in dem öffentlich verfüg-         Aussperren ungewollter Artefakte), son-
Werkzeuge objektorientierte Skriptspra-                   baren, zentralen Repository durchsucht.        dern steuert auch die Verfügbarkeit über
chen zur Definition des Buildprozesses.                   Es gibt aber Argumente, die dafür spre-        das eigene Netzwerk. Wäre das zentrale
Verbreitet sind vor allem Ruby (z. B.                     chen, die vorgegebene Struktur anzu-           Repository nicht zu erreichen, könnten
buildr [16] und Raven [17]) und Groovy                    passen und auch eigene Repositories im         ggf. für diesen Zeitraum keine Maven-
(z. B. Gradle [18] und Gant6 [19]).                       Netzwerk zu hinterlegen.                       Projekte gebaut werden.
      In Hinblick auf das Dependency-                                                                          Ein ganz wesentlicher Punkt ist der
Management ist Apache Ivy [20] ein in-                    Gründe für eigene Repositories                 Sicherheitsaspekt. Öffentliche Reposi-
teressantes Projekt. Dieses Werkzeug                                                                     tories besitzen immer das Gefahren-
wird in Kombination mit Ant genutzt                       Software-Entwicklung, vor allem bei            potenzial, dass die bezogenen Artefakte,
und adressiert das Problem der einheit-                   mittleren und größeren Projekten, ist          auf welchen Wegen auch immer, schad-
lichen Verwaltung von JAR-Dateien                         Teamwork. Projekte und Bibliotheken            hafte Software enthalten. Eine restriktive
über Repositories. So kann es sowohl                      müssen untereinander immer abge-               Verwaltung des Repository-Managers
auf Maven-Repositories zugreifen, als                     stimmt sein und auf verteilten Rechnern        hilft hierbei.
auch Repositories mit Ivy-spezifischer                    die gleiche Datenbasis nutzen. Das                   Ein weiterer Vorteil liegt in der Mög-
Struktur verwalten.                                       lokale Speichern von Dateien reicht            lichkeit, das selbst verwaltete Repository
      Für sich alleine zählt Ivy nicht zu                 nicht aus.                                     als Proxy zu anderen öffentlich verfüg-
den Buildwerkzeugen, da es nur eine                            Was die Verwaltung von Änderungen         baren Repositories zu nutzen. Dadurch
Teilfunktionalität umsetzt. Allerdings                    auf Dateisystemebene betrifft, existieren      werden die für die eigenen Projekte be­-
nutzt z. B. Gradle das Dependency-Ma-                     leistungsfähige Versionskontrollsysteme        nötigten Artefakte zwischengespeichert,
nagement von Ivy, und auch Ant kann                       wie SVN [21], Git [22] oder Mercurial [23].    was sich in weniger Anfragen und Down-
durch die Verwendung von Ivy-Tasks                        Im Rahmen des AGNES-Teams [24] wird            loads bei den zentralen Repositories
erweitert werden. Buildr verfügt über                     der SVN-Dienst des Computer- und Me-           niederschlägt. Bei kleineren Projekten
ein eigenes Dependency-Management,                        dienservice (CMS) verwendet [25]. Um           und wenigen Nutzern ist der Effekt je-
welches mit Maven-Repositories kompa-                     jedoch in vollem Umfang das im vorigen         doch eher gering.
tibel ist.                                                Abschnitt besprochene Dependency-
                                                          Management zu nutzen, muss man in              Sonatype Nexus und andere
                                                          Kombination mit Maven auf Repositories         Repository-Manager für Maven
Beschreibung Repositories                                 zurückgreifen.
                                                               Es sind zwei Problemstellungen zu         Insbesondere aufgrund der genannten
Repositories im Zusammenhang mit                          lösen: 1. Wie veröffentliche ich eigene        Vorteile hinsichtlich der kontrollierten
Maven sind als Softwareverzeichnisse                      Artefakte? Und 2. Wie bekomme ich              Verfügbarmachung eigener sowie frem-
mit einer definierten Struktur und                        Artefakte, die nicht in öffentlich verfüg-     der, lizenzrechtlich eingeschränkter Arte-
beschreibenden Metadaten zu verstehen.                    baren Repositories verwaltet werden?           fakte, wurde in der Abteilung „DV in der
Das Maven-Verzeichnislayout kann auch                          Zu Punkt 1 gäbe es grundsätzlich          Verwaltung“ des CMS die Einrichtung
durch andere Buildwerkzeuge gelesen                       die Möglichkeit, eigene Artefakte in das       eines internen Repositories beschlossen.
werden. In das Repository werden die                      zentrale Maven-Repository hochzuladen.         Da die manuelle Pflege eines solchen
durch den Buildprozess erstellten Arte-                   Dies hätte allerdings die Konsequenz,          Repositories aufwändig und fehlerträch-
                                                          dass die ganze Welt darauf Zugriff hat.        tig ist, wurde hierfür ein Repository-Ma-
4 Das Programmieren eigener Plugins und deren             Wenn das nicht gewünscht ist, kann die         nager ausgewählt. Bei dieser Installation
  Einbindung in den Buildlebenszyklus ist eine            Einrichtung eines organisationseigenen         handelt es sich um einen Testeinsatz im
  Möglichkeit, siehe auch unter [14].
5 Für Maven 3 existiert das Polyglot Maven-Projekt
                                                          Repositories mit beschränktem Zugriff          kleinen Umfeld, daher wurde ein frei
  [15], das ermöglichen will, dass die Projektbeschrei-   die Lösung sein.                               verfügbares Programm genutzt.
  bung nicht mehr ausschließlich in XML, sondern               Zu Punkt 2 gibt es bei einigen Arte-            In seiner Funktionalität sollte der
  auch alternativ in Groovy und ähnlichen Sprachen
  ermöglicht wird. Bis zur Fertigstellung des Artikels    fakten zudem lizenzrechtliche Einschrän-       Repository-Manager als Proxy für
  gab es keine Umsetzung dieser Funktionalität für        kungen, die der Veröffentlichung über          entfernte Repositories, als Speicherort
  Maven 3.
6 Bei Gant dient Groovy lediglich zum Ersatz der          die zentralen Repositories entgegen-           für unternehmensinterne JARs und als
  XML-Struktur von Ant.                                   stehen. In diesen Fällen kann über ein         Verwaltungstool für die Zugriffsrechte

32             cms-journal 34 / Juni 2011
auf die einzelnen Repositories und Arte-     erfolgt standardmäßig über eine Daten-              standardisierten und breit verfügbaren
fakte dienen. Das Programm sollte auf        bank, alternativ können die Artefakte               JAR-Bibliotheken wie JDOM für die XML-
Debian Linux-Servern lauffähig sein und      aber auch direkt im Dateisystem abge-               Verarbeitung oder log4j für das Logging
nach Möglichkeit über eine einfach zu        legt werden. Artifactory unterstützt keine          war das voreingestellte Maven-Reposi-
bedienende Weboberfläche verfügen.           Maven 1-Clients und verbraucht wegen                tory völlig ausreichend.
      Auf dem Markt existieren vor allem     umfangreicher Indizierung mitunter                        Im Laufe der Zeit ergaben sich aller-
drei Repository-Manager: Apache Archiva      mehr Speicherplatz auf dem Datenträger              dings Probleme durch den Ansatz, die
[26], Artifactory [27] und Sonatype Nexus    als Nexus.8                                         JAR-Dateien ausschließlich aus dem
[28] (früher Proximity). Allen ist gemein-         Der Dritte im Bunde ist Apache                zentralen Repository zu beziehen. Zur
sam, dass sie in Java programmiert und       Archiva. Dieses Top-Level-Projekt von               besseren Wiederverwendung gliederte
als WAR Webarchiv lauffähig sind. Zur        Apache wurde 2005 gestartet und im No-              man selbst entwickelte Funktionalitäten
Bedienung des Repository-Managers            vember 2007 das erste Produktionsre-                in eigene Projekte aus und benötigte
be­sitzen alle eine Weboberfläche, die       lease veröffentlicht. Es handelt sich um            eine Möglichkeit zur Speicherung. Wei­
einen leistungsfähigen, auf Lucene [29]      ein vollständig frei verfügbares Werk­zeug          terhin wollte man Artefakte nutzen, die
basierenden Suchmechanismus zur Ver­         unter der Apache License 2.0. Archiva               aus lizenzrechtlichen Gründen nicht
fügung stellt.                               ist etwas funktionsärmer als Nexus OSS              öffentlich verfügbar sind. Diese mussten
      Der erste verfügbare Maven Reposi-     und Artifactory, insgesamt aber vergleich-          ungünstigerweise von Hand in die Pro-
tory-Manager war Sonatype Nexus. So-         bar. Das Repository wird wie bei Nexus              jekte einfügt werden, was den Nutzen
natype bietet eine Open-Source-Version       im Dateisystem auf dem Server gespei-               des Dependency-Managements für die
unter der Bezeichnung Nexus OSS an           chert. Zur Verwaltung der Daten nutzt               Entwicklung stark reduzierte.
und wird unter der Lizenz GNU Affero         Archiva standardmäßig eine Derby DB.                      Um die gewünschte Flexibilität wie­-
GPL Version 3 (AGPLv3) bereitgestellt.             Eine ausführliche Gegenüberstel-              derzuerlangen, wurde ein eigenes, zu­-
Er erfüllt die angegebenen Kriterien         lung der Eigenschaften der genannten                nächst auf das AGNES-Team beschränk­
und verfügt darüber hinaus über              drei Repository-Manager findet sich auch            tes Repository eingesetzt. Die Wahl fiel
eine LDAP-Integration, eine einfache         unter [36].                                         auf den Sonatype Nexus OSS, vor allem
Adressierungsmöglichkeit der Reposito-                                                           aufgrund der umfangreichen Dokumen-
rygruppen über eine einzige URL sowie        Maven und Sonatype Nexus                            tation. Nach erfolgreichen lokalen Tests
geplante Tasks (z. B. zum Aufräumen          im Einsatz                                          und einem positiven ersten Eindruck
alter Snapshots) [30]. Das Repository                                                            wurde diese Anwendung als Repository-
wird auf dem Dateisystem im Maven            Im AGNES-Team des CMS wird schon                    Manager weiter untersucht. Abbildung 1
2-Layout7 abgelegt.                          seit längerem für Java-Projekte nach                zeigt schematisch den stufenweisen Zu-
      Ein großer Vorteil von Nexus ist die   Möglichkeit Maven eingesetzt. Der größte            griff auf das Nexus-Repository von einem
umfangreiche Dokumentation, die in           Vorteil liegt im Dependency-Manage-                 lokalen Rechner.
Form eines kompletten Buches in HTML         ment. Für die ersten Projekte mit relativ
und PDF vorliegt [32]. Dies erleichtert
Installation und Konfiguration erheblich.
Als kommerzielles Pendant wird der
Nexus Professional vertrieben (2995 US-
Dollar für 50 Nutzer). Er verfügt über
erweiterte Suchfunktionen, die Möglich-
keit der Projektwebseitenintegration und
feingranulare Einstellmöglichkeiten in
Hinsicht auf Validierung und Verifikati-
on von Artefakten [33].
      Seit 2006 wird der Repository-
Manager Artifactory von JFrog angebo-
ten. Auch dieser teilt sich in eine frei
verfügbare und eine kommerzielle Ver-
sion auf. In puncto Interoperabilität und
Funktionalität übertrifft Artifactory den
Nexus OSS, z. B. durch die hierarchische
Gliederung von Nutzergruppen und
erweiterte Suchoptionen. Die Spei­che-       Abb. 1: Infrastruktur und Suche nach Artefakten mit Nexus
rung der Artefakte und ihrer Metadaten
                                             8 Ein interessanter Schlagabtausch zwischen den
7 siehe Erläuterung hierzu unter [31].         Entwicklern findet sich unter [34] und [35].

                                                                                          Schöner Bauen mit Maven und Nexus          33
Als Server für Nexus wurde von der          Literaturverzeichnis                              [23] Mercurial SCM.
Wintech-Gruppe des CMS ein virtueller                                                                   http://mercurial.selenic.com/
Debian-Server eingerichtet. Die Anwen­-          [1] Beck, K.: Test-Driven Development By          [24] Humboldt-Universität zu Berlin.
dung selbst ist passwortgeschützt inner-              Example. Addison-Wesley, 2003                     Webseite des AGNES-Portals: htt-
halb des Universitätsnetzes zu erreichen.        [2] Apache Maven Project. http://maven.                ps://agnes.hu-berlin.de
Die SSL-Verschlüsselung9 erfolgt über                 apache.org/                                  [25] SvnBenutzerHowTo. http://twiki.cms.
ein durch den PKI-Service [37] der HU            [3] The Apache Software Foundation.                    hu-berlin.de/svn/svnbenutzerhowto.
bereitgestelltes signiertes Server-Zerti-             http://apache.org/                                html
fikat.                                           [4] Maven 2.2.1 und Maven 3.0. http://            [26] Archiva: The Build Artifact Repository
     Inzwischen nutzt auch das Projekt                www.torsten-horn.de/techdocs/ma-                  Manager. http://archiva.apache.org/
HU-IAM10 der Abteilung „DV in der                     ven.htm                                      [27] JFrog – Home of Artifactory Binary
Verwaltung“ Nexus intensiv. Auf diese            [5] Eclipse – The Eclipse Foundation open              Repository Manager. http://www.jfrog.
Weise wird die Installation von Nexus                 source community website.                         com/
weiter getestet und verbessert. Inzwi-                http://www.eclipse.org/                      [28] Sonatype – Nexus.
schen läuft der Repository-Manager in            [6] IntelliJ IDEA – The Most Intelligent               http://nexus.sonatype.org/
Version 1.9 sehr stabil und ist über den              Java IDE.                                    [29] Apache Lucene.
HU-eigenen Nagios-Dienst [38] in die                  http://www.jetbrains.com/idea                     http://lucene.apache.org/
Systemüberwachung eingebunden.                   [7] Apache Ant. http://ant.apache.org/            [30] Sonatype – Nexus Open Source. http://
                                                 [8] Sonatype – Convention Over Configu-                www.sonatype.com/books/nexus-
                                                      ration. http://www.sonatype.com/                  book/reference/ch01s02.html
Aussicht                                              books/mvnref-book/reference/                 [31] Repository Layout – Final – Ma-
                                                      installation-sect-convention                      ven – Codehaus. http://docs.
Nach den guten ersten Erfahrungen                     Configuration.html                                codehaus.org/display/MAVEN/
soll in Zukunft die Zugriffsstruktur des         [9] Maven Surefire Plugin. http://maven.               Repository+Layout+-+Final
Repository-Managers überarbeitet wer-                 apache.org/plugins/maven-surefire-           [32] Sonatype – Repository Management
den. Wichtig hierfür sind insbesondere                plugin/howto.html                                 with Nexus. http://www.sonatype.com/
die Definition von verschiedenen Rollen          [10] Maven – Available plugins.                        books/nexus-book/reference/
für lesende und in das Repository schrei-             http://maven.apache.org/plugins/             [33] Sonatype – 1.3. Nexus Professional.
bende Nutzer. Der Einsatz von Nexus                   index.html                                        http://www.sonatype.com/books/
Professional ist nicht geplant. Da bisher        [11] Sonatype – Universal Reuse through                nexus-book/reference/ch01s03.html
nur Nexus OSS als Repository-Manager                  Maven Plugins. http://www.sonatype.          [34] Sonatype Blog – Contrasting Nexus
genutzt wurde, ist eine Evaluation der                com/books/mvnref-book/reference/                  and Artifactory. http://www.sonatype.
Funktionalität und der Verlässlichkeit                installation-sect-universal-reuse.html            com/people/2009/01/contrasting-
von Artifactory und Archiva sinnvoll.            [12] Sonatype – Chapter 4. The Build Lifecycle.        nexus-and-artifactory/
                                                      http://www.sonatype.com/books/               [35] From the Frog‘s Mouth. http://blogs.
                                                      mvnref-book/reference/lifecycle.                  jfrog.org/2009/01/contrasting-artif-
                                                      html#lifecycle-sect-default                       actory-and-nexus.html
                                                 [13] Index of /maven2/.                           [36] Maven Repository Manager Feature
                                                      http://repo1.maven.org/maven2/                    Matrix. http://docs.codehaus.org/dis-
                                                 [14] Sonatype – Chapter 7. Maven Configu-              play/MAVENUSER/Maven+Repository+
                                                      ration. http://www.sonatype.com/                  Manager+Feature+Matrix
                                                      books/mvnref-book/reference/confi-           [37] PKI-Services – Computer- und Medien-
                                                      guring.html                                       service. Humboldt-Universität zu
                                                 [15] Sonatype / polyglot-maven – github.               Berlin, http://www.cms.hu-berlin.de/
                                                      https://github.com/sonatype/                      dl/zertifizierung
                                                      polyglot-maven                               [38] Nagios – The Industry Standard in
                                                 [16] Buildr – Apache Buildr.                           IT Infrastructure Monitoring.
                                                      http://buildr.apache.org/                         http://www.nagios.org/
                                                 [17] Raven. http://raven.rubyforge.org/
                                                 [18] Gradle. http://www.gradle.org/
                                                 [19] Gant. http://gant.codehaus.org/
                                                 [20] Apache Ivy. http://ant.apache.org/ivy/
                                                 [21] Apache Subversion. http://subversion.
                                                      apache.org/
9 SSL = Secure Sockets Layer
10 HU-IAM = Identitätsmanagement der Humboldt-
                                                 [22] Git – Fast Version Control System.
   Universität zu Berlin                              http://git-scm.com/

34           cms-journal 34 / Juni 2011
Sie können auch lesen