Spiller Maven 3
1., 2011
ISBN: 978-3-8266-8398-5
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark
Konfigurationsmanagement mit Java
E-Book, Deutsch, 368 Seiten
Reihe: mitp Professional
ISBN: 978-3-8266-8398-5
Verlag: mitp Verlags GmbH & Co.KG
Format: PDF
Kopierschutz: 1 - PDF Watermark
Martin Spiller ist Diplom-Mathematiker und arbeitet als Softwareentwickler und Berater im Java-Umfeld für die neusta GmbH. Seine Schwerpunkte sind Softwarequalität, Konfigurationsmanagement und Performance-Tuning .
Autoren/Hrsg.
Weitere Infos & Material
1;Cover
;1
2;Titel
;3
3;Impressum
;4
4;Inhaltsverzeichnis;7
5;Danksagungen;17
6;Vorwort;19
7;Einführung;21
7.1;1.1 Über dieses Buch;22
7.1.1;1.1.1 Für wen ist dieses Buch?;22
7.1.2;1.1.2 Konventionen;24
7.1.3;1.1.3 Sprache;25
7.2;1.2 Das Mavenbuch im Internet;26
7.3;1.3 Kontakt;26
8;Maven im Überblick;27
8.1;2.1 Was ist Maven?;27
8.1.1;2.1.1 POM;27
8.1.2;2.1.2 Lebenszyklen;28
8.1.3;2.1.3 Vereinfachtes Build-Management;28
8.1.4;2.1.4 Trennung von Code und Unit-Tests;28
8.1.5;2.1.5 Verwaltung von Abhängigkeiten;28
8.1.6;2.1.6 Artefakte;29
8.1.7;2.1.7 Informationen zu Codequalität und Projektzustand;29
8.2;2.2 Voraussetzungen;29
8.2.1;2.2.1 Betriebssystem;29
8.2.2;2.2.2 JDK;29
8.2.3;2.2.3 Speicherplatz;29
8.3;2.3 Installation;30
8.4;2.4 Projekt erstellen;31
8.5;2.5 Bauen - Testen - Packen;33
8.5.1;2.5.1 Basisfunktionen;33
8.5.2;2.5.2 Dokumentation;36
8.6;2.6 Projekte erweitern;40
8.7;2.7 Ein Web-Projekt;41
8.7.1;2.7.1 Generieren einer Web-Applikation;41
8.7.2;2.7.2 Servlet-API;43
8.7.3;2.7.3 Ausführen der Web-Anwendung;43
8.8;2.8 Weitere Projekttypen;44
8.9;2.9 Entwicklungsumgebungen;45
8.9.1;2.9.1 Eclipse;45
8.9.2;2.9.2 Netbeans;48
8.9.3;2.9.3 IntelliJ IDEA;48
9;Maven als Konfigurationsmanagement-Tool;49
9.1;3.1 Konfigurationsmanagement;49
9.2;3.2 Elemente des Konfigurationsmanagements;51
9.3;3.3 Von make zu Maven;53
10;Maven-Grundlagen;57
10.1;4.1 Maven ausführen;57
10.1.1;4.1.1 Lifecycles;57
10.1.2;4.1.2 Plugins;57
10.1.3;4.1.3 Kommandozeilenparameter;58
10.1.4;4.1.4 MAVEN_OPTS;60
10.2;4.2 Versionierung;61
10.2.1;4.2.1 Releases;61
10.2.2;4.2.2 Snapshots;61
10.3;4.3 Maven-Konventionen;62
10.3.1;4.3.1 Verzeichnisstruktur;62
10.3.2;4.3.2 Namenskonventionen;64
10.4;4.4 Zugangsdaten verschlüsseln;65
10.4.1;4.4.1 Anlegen eines Masterpassworts;65
10.4.2;4.4.2 Verschlüsseln von Passworten;66
10.5;4.5 Wo erhalte ich Hilfe?;66
10.5.1;4.5.1 Maven-Hilfe im Internet;66
10.5.2;4.5.2 Das Maven-Help-Plugin;67
11;Lifecycles;71
11.1;5.1 Die Standard-Lifecycles;71
11.1.1;5.1.1 Der Default-Lifecycle;72
11.1.2;5.1.2 Der clean-Lifecycle;75
11.1.3;5.1.3 Der Site-Lifecycle;76
12;POM - Das Project Object Model;77
12.1;6.1 Koordinaten;78
12.1.1;6.1.1 Elemente;78
12.2;6.2 Projektbeziehungen;79
12.2.1;6.2.1 Abhängigkeiten;79
12.2.2;6.2.2 Vererbung;80
12.2.3;6.2.3 Aggregation;80
12.3;6.3 Projektinformationen;81
12.3.1;6.3.1 Lizenzen;81
12.3.2;6.3.2 Team-Informationen;82
12.3.3;6.3.3 Organisation;83
12.4;6.4 Build-Einstellungen;84
12.4.1;6.4.1 properties;84
12.4.2;6.4.2 build;84
12.4.3;6.4.3 reporting;88
12.5;6.5 Projektumgebung;89
12.5.1;6.5.1 Build-Umgebung;89
12.5.2;6.5.2 Maven-Umgebung;92
13;Dependencies;97
13.1;7.1 Abhängigkeiten im POM;97
13.1.1;7.1.1 Das dependency-Tag;98
13.1.2;7.1.2 dependencyManagement;101
13.2;7.2 Versionsbereiche;103
13.3;7.3 Transitive Abhängigkeiten;105
13.3.1;7.3.1 Der Gültigkeitsbereich transitiver Abhängigkeiten;106
13.4;7.4 Das Dependency-Plugin;107
13.4.1;7.4.1 Goals;107
13.5;7.5 Welche Koordinaten, Käpt’n?;109
13.5.1;7.5.1 Drittmittel;110
14;Projektbeziehungen;111
14.1;8.1 Vererbung;111
14.2;8.2 Aggregation - Multimodul-Projekte;112
14.2.1;8.2.1 Fischladen;112
15;Repositories;115
15.1;9.1 Lokale und entfernte Repositories;115
15.2;9.2 Repository-Struktur;115
15.3;9.3 Repositories verwenden;116
15.3.1;9.3.1 Das lokale Repository;116
15.3.2;9.3.2 Entfernte Repositories;116
15.3.3;9.3.3 Plugin-Repositories;120
15.3.4;9.3.4 Distribution Management;121
15.4;9.4 Eigene Repositories;122
15.5;9.5 Bibliotheken installieren;123
15.5.1;9.5.1 Installation im lokalen Repository;124
15.5.2;9.5.2 deploy im entfernten Repository;125
16;Plugins;127
16.1;10.1 Ausführen von Plugins;127
16.1.1;10.1.1 Ausführen auf der Kommandozeile;127
16.1.2;10.1.2 Automatisches Ausführen von Plugins;128
16.2;10.2 Deklaration im POM;129
16.2.1;10.2.1 Elemente;129
16.2.2;10.2.2 Die Sektion pluginManagement;130
16.2.3;10.2.3 Plugin-Repositories;131
16.2.4;10.2.4 Versionen und Update von Plugins;131
16.2.5;10.2.5 Externe Konfiguration - Konfigurationsmodule?;132
16.3;10.3 Das Maven-AntRun-Plugin;133
17;Properties und Filtering;135
17.1;11.1 Maven-Properties;135
17.1.1;11.1.1 Projekt-Properties;135
17.1.2;11.1.2 Settings-Properties;136
17.1.3;11.1.3 Umgebungsvariablen;137
17.1.4;11.1.4 System-Properties;137
17.1.5;11.1.5 Properties definieren;138
17.2;11.2 Resource Filtering;139
17.2.1;11.2.1 Filterdateien;140
17.2.2;11.2.2 Excludes;142
17.2.3;11.2.3 Web-Applikationen;142
18;Profile;145
18.1;12.1 Profilarten;145
18.2;12.2 Profilaktivierung;146
18.2.1;12.2.1 Aktivierung über die Kommandozeile;146
18.2.2;12.2.2 Aktivierung in den Settings;147
18.2.3;12.2.3 Aktivierung als Standard;147
18.2.4;12.2.4 Umgebungsabhängige Aktivierung;148
18.2.5;12.2.5 Und wer ist jetzt aktiv?;150
18.3;12.3 Einsatzmöglichkeiten für Profile;150
18.3.1;12.3.1 Standortabhängige Ressourcen;150
18.3.2;12.3.2 Module;151
18.3.3;12.3.3 Dependencies;151
18.3.4;12.3.4 Properties für verschiedene (Test-)Umgebungen;151
18.3.5;12.3.5 Artefakte durch Klassifizierer kennzeichnen;155
18.4;12.4 Konflikte;156
18.4.1;12.4.1 Profile mit gleichem Namen;156
18.4.2;12.4.2 Gleichnamige Eigenschaften;156
19;Maven-SCM;159
19.1;13.1 Versionskontrolle mit dem SCM-Plugin;159
19.1.1;13.1.1 Wird mein Kontrollsystem unterstützt?;159
19.2;13.2 Unterstützte Kommandos;160
19.3;13.3 Anwendung des SCM-Plugins;161
19.3.1;13.3.1 Alles ist wandelbar;161
19.4;13.4 Konfiguration;161
19.4.1;13.4.1 Aufbau der SCM-URL;162
19.4.2;13.4.2 Subversion;162
19.5;13.5 Beispiele;163
19.5.1;13.5.1 Automatisches Kennzeichnen von Releases;165
19.5.2;13.5.2 Sauberes Deployment mit scm:bootstrap;165
20;Software veröffentlichen;167
20.1;14.1 Maven-Release-Plugin;167
20.1.1;14.1.1 Die Vorbereitung des Release - release:prepare;168
20.1.2;14.1.2 Die Ausführung des Release - release:perform;170
20.1.3;14.1.3 Weitere Goals;171
20.2;14.2 Assembly-Plugin;172
20.2.1;14.2.1 Was sind Assemblies?;172
20.2.2;14.2.2 Assembly-Deskriptoren;173
20.2.3;14.2.3 Assembly-Inhalte festlegen;176
20.2.4;14.2.4 Dateien;176
20.2.5;14.2.5 Dependencies;179
20.2.6;14.2.6 Module;181
20.2.7;14.2.7 Repositories;184
20.2.8;14.2.8 Assembly-Deskriptoren weiterverwenden;185
20.3;14.3 Server Deployments mit dem Cargo-Plugin;186
21;Plugins schreiben;191
21.1;15.1 Bestandteile eines Maven-Plugins;191
21.1.1;15.1.1 Plugin Build-Lifecycle;191
21.1.2;15.1.2 Der Plugin-Deskriptor;192
21.1.3;15.1.3 Namenskonventionen;192
21.2;15.2 Mojo;193
21.2.1;15.2.1 Fehlerbehandlung;193
21.2.2;15.2.2 Der Mojo-Logger;194
21.3;15.3 Eigene Plugins schreiben;194
21.3.1;15.3.1 Ein erstes Mojo;194
21.3.2;15.3.2 Das POM;195
21.4;15.4 Parameter;196
21.4.1;15.4.1 Prioritäten;199
21.5;15.5 Parametertypen;199
21.5.1;15.5.1 Skalare Werte;199
21.5.2;15.5.2 Mehrdimensionale Parameter;200
21.5.3;15.5.3 Konfiguration von Parametern;202
21.5.4;15.5.4 Testen von Plugins;204
21.5.5;15.5.5 Dokumentation von Plugins;204
21.5.6;15.5.6 Unterstützte Sprachen;206
22;Maven und Eclipse;207
22.1;16.1 Das Maven-Eclipse-Plugin;207
22.1.1;16.1.1 Goals;207
22.1.2;16.1.2 Vorbereitungen;208
22.1.3;16.1.3 Projektkonfiguration;209
22.2;16.2 Maven ausführen;214
22.2.1;16.2.1 External Tools;214
22.2.2;16.2.2 Maven als Builder in Eclipse;217
22.2.3;16.2.3 Ersetzen des Standard-Eclipse-Builders;218
22.3;16.3 Eclipse-Maven-Plugins;219
22.3.1;16.3.1 M2Eclipse;219
22.3.2;16.3.2 Eclipse IAM;221
23;Reporting und Dokumentation;223
23.1;17.1 Projektdokumentation mit Maven;223
23.2;17.2 Bestandteile;224
23.3;17.3 Projektinformationen;224
23.3.1;17.3.1 Continuous Integration;225
23.3.2;17.3.2 Dependencies;225
23.3.3;17.3.3 Dependency Convergence;227
23.3.4;17.3.4 Issue Tracking;228
23.3.5;17.3.5 Mailing Lists;228
23.3.6;17.3.6 Plugin Management;228
23.3.7;17.3.7 Project License;229
23.3.8;17.3.8 Project Plugins;229
23.3.9;17.3.9 Project Summary;229
23.3.10;17.3.10 Project Team;230
23.3.11;17.3.11 Source Repository;230
23.3.12;17.3.12 Konfiguration der Projektinformationen;230
23.4;17.4 Projekt-Reports;232
23.4.1;17.4.1 Das Javadoc-Plugin;233
23.4.2;17.4.2 Das Surefire-Report-Plugin;233
23.4.3;17.4.3 JXR;234
23.4.4;17.4.4 Weitere Reporting-Plugins;234
23.5;17.5 Eigene Projektdokumentation;241
23.5.1;17.5.1 Doxia - ein Content-Generation-Framework;241
23.5.2;17.5.2 APT - das Maven-Dokument-Format;241
23.5.3;17.5.3 XDOC - das Jakarta-Dokument-Format;246
23.5.4;17.5.4 FML - Frequently Asked Questions;247
23.5.5;17.5.5 Verzeichnisstruktur;249
23.5.6;17.5.6 Internationalisierung;249
23.6;17.6 Der Site-Deskriptor;250
23.6.1;17.6.1 Aufbau;250
23.6.2;17.6.2 Vererbung;254
23.6.3;17.6.3 Look&Feel anpassen;255
23.7;17.7 Multimodul-Projekte;255
23.7.1;17.7.1 Besonderheiten;255
23.8;17.8 Das Maven-Site-Plugin;256
23.8.1;17.8.1 site - goals;257
23.8.2;17.8.2 Module ausschließen;258
23.8.3;17.8.3 Der Site-Lebenszyklus;259
24;Qualitätsmanagement mit Maven;261
24.1;18.1 Continuous Integration;261
24.2;18.2 QS-Plugins;261
24.2.1;18.2.1 Checkstyle;261
24.2.2;18.2.2 PMD;267
24.2.3;18.2.3 FindBugs;271
24.2.4;18.2.4 Surefire;272
24.2.5;18.2.5 Surefire-Reports;273
24.2.6;18.2.6 Cobertura;274
24.2.7;18.2.7 Integrationstests mit dem Failsafe-Plugin;276
24.3;18.3 Tipps und Tricks;278
24.3.1;18.3.1 Source-Encoding;278
24.3.2;18.3.2 Build-Abbruch bei Regelverstößen;278
24.3.3;18.3.3 Konfigurationsmodule;280
24.4;18.4 Erzeugen von Projekt-Templates mit dem Archetype-Plugin;281
24.4.1;18.4.1 Woher bekommt Maven neue Archetypen?;282
24.5;18.5 Firmenweite Einstellungen;283
24.6;18.6 POM-Tuning;284
24.6.1;18.6.1 Konfigurationsmodule;285
25;Änderungen in Maven 3;287
25.1;19.1 Umstieg von Maven 2 auf Maven 3;287
25.2;19.2 Repositories und Dependencies;288
25.3;19.3 Reporting;289
25.4;19.4 Ausführung;289
25.4.1;19.4.1 Neue Kommandozeilen-Parameter;289
25.4.2;19.4.2 Profile;290
25.5;19.5 Und was noch?;290
25.5.1;19.5.1 Mvnsh;290
25.5.2;19.5.2 Polyglot for Maven;291
26;Produkte aus dem Maven-Universum;293
26.1;A.1 Über diesen Anhang;293
26.1.1;A.1.1 Datenbanken;293
26.2;A.2 Apache Archiva;293
26.2.1;A.2.1 Was ist Archiva?;294
26.2.2;A.2.2 Installation;294
26.2.3;A.2.3 Konfiguration;296
26.2.4;A.2.4 Server-Konfiguration;297
26.2.5;A.2.5 Benutzerverwaltung;299
26.2.6;A.2.6 Tipps;301
26.2.7;A.2.7 Literatur;303
26.3;A.3 Continuum;303
26.3.1;A.3.1 Continuous Integration?;303
26.3.2;A.3.2 Installation;304
26.3.3;A.3.3 Konfiguration;306
26.3.4;A.3.4 Und was noch?;312
27;Konfigurationsdateien;315
27.1;B.1 POM - Project Object Model;315
27.1.1;B.1.1 Basiselemente;315
27.1.2;B.1.2 Koordinaten;315
27.1.3;B.1.3 Projektbeziehungen;315
27.1.4;B.1.4 Umgebungseinstellungen;318
27.1.5;B.1.5 Super-POM;323
27.2;B.2 settings.xml;326
27.2.1;B.2.1 Referenz;327
28;Referenzen;331
28.1;C.1 Mojo-Elemente und -Annotations;331
28.1.1;C.1.1 Hauptelemente;331
28.1.2;C.1.2 Mojo-Elemente;331
28.1.3;C.1.3 Parameterelemente und -Annotations;335
28.2;C.2 APT-Kurzreferenz;337
28.3;C.3 Plugin-Versionen in Maven 3.0.3;340
28.4;C.4 Lifecycle-Verknüpfungen;341
28.4.1;3.4.1 Build-Lifecycle;341
28.5;C.5 Namenskonventionen für SUN-JARs;342
29;Literatur;345
30;Stichwortverzeichnis;347




