Das Werkzeug Apache Ant

Werbung
Das Werkzeug Apache Ant
Apache Ant ist ein Werkzeug, mit dem Quellcode zusammengestellt, bearbeitet, übersetzt und Programme ausgeführt werden
können. Es ist insbesondere für die Steuerung umfangreicher
Erzeugungsprozesse im Java-Umfeld geeignet
Ant ist in der Entwicklungsumgebung Eclipse integriert, kann
aber auch stand-alone genutzt werden.
Unter der Adresse http://ant.apache.argbefinden sich die Seiten Installation
zum Download der Binärdistribution inklusive Dokumentation.
Zum Zeitpunkt der Veröffentlichung dieses Buches ist die Version 1,8,0 aktuell,
Die Archivdatei apacbe-ant-LS. O-binzip kann in einem beliebigen Verzeichnis (z. B, Ce \Programme) entpackt werden, Anschließend müssen Umgebungsvariablen (z. B, bei Windows
über System in der Systemsteuerungi gesetzt werden:
ANT_HOME
JAVA HOHE
PATH
~
C:\Programme\apache-ant-l.8.0
~
=
<Java ~Installatlonsverzelchnls>
%JAVA_HOME%\bin:%ANT_HOME%\bin:.
Ant wird über eine XML-Datei build.xml gesteuert. Dieses so Ein Beispiel
genannte Buildfile enthält ein Projekt, in dem in Targets die einzelnen Arbeitsschritte (Tasks) zusammengefasst sind.
<project name="Demo -Projekt" default="makeJar" basedlr=". ">
<property narre="verSlon" value="l.O" />
<property nane-" src" val ue-" src" />
<property narre~"build" value~"build"/>
<property narre~"lib" value~"lib"/>
<property nane-" j arname" val ue-" dcno - ${versl on} . ja r" />
<target narre="prepare">
<mkdir dir~"${build}"/>
<mkdir dir~"${lib}"/>
</target>
<target nane-" clean" descrl ptl orr-"Aufraeumen ">
<delete dir~"${build}"/>
<delete dir~"${lib}"/>
</target>
Das Werkzeug Apache Ant
364
<target name="complle" depends="prepare"
descr iption="Compilieren">
<ja vac
srcdir~"I{src}" destd ir~"I{bui1d}"
includeAntRunt ime="false" />
</target>
<targ et name="makeJar" depends="compile"
description="Jar-Date i erzeugen">
<jar jarfi 1e-" 1{1 i b}/ I{jarname}" basedi r--" I{bui 1d}" />
</target>
<targ et name="start" description="Anwendung starten">
<java classnarre=" D2lTD" fork="yes">
<c l asspath>
<pathe1ement 1ocati on-" I{ 1i b}/I{j arnarre}" />
</classpath>
</ja va>
</target>
</project>
Welche Targets zur Verfügung stehen, kann durch das folgende
Kommando angezeigt werden (Aufruf in dem Verzeichnis, das
build.xml enthält}
ant -p
Ausgabe,
Bui 1dfi 1e: C: I ... Ibui ld.xml
Hain targets:
clean
compil e
makeJar
start
Aufraeumen
Compilieren
Jar-Datei erzeugen
Anwendung starten
Defau1t target: makeJar
Targets können von anderen Targets abhängig sein (Attribut
depends). So hängt z. B. das Target compile vom Target prepare,
das Target make]arvom Target compile ab.
Der Aufruf von
ant makeJar
Das Werkzeug Apache Ant
365
oder auch nur ant, da make]ar das Default-Target ist (siehe
project-Tag), führt dazu, dass zunächst die Verzeichnisse build
und lib angelegt (Target prepare), dann die Sourcen compiliert
werden (Target compile) und schließlich die jar-Datei erzeugt
wird.
Ausgabe,
Buildfile: build.xml
prepare:
[mkdir] Created dir:
[mkdir] Created dir:
Ibuild
Ilib
complle:
[javac] Compiling 1 source file to ... Ibuild
makeJar:
[jarl Building jar: ... llibldelTD-1.0.jar
BU1l0 SUCCESSFUl
Total ti me: 10 seconds
Zu Beginn der Build-Datei werden Variablen xxx, so genannte
Properties, gesetzt (z. B. konkrete Verzeichnisnamen). Auf diese
wird später mit l{xxx} Bezug genommen.
ant start startet das Programm Demo.
ant clean stellt den Anfangszustand wieder her.
Eine vollständige Liste aller Elemente und insbesondere der zur
Verfügung stehenden Tasks befindet sich in der Online-Dokumentation zu Ant.
Internet-Quellen
Den Zugang zu den Zusatzmaterialien finden Sie auf der Website Beispielprogramme
des Verlags
und Lösungen zu
www. vlewegt eubner.de
den Aufgaben
direkt neben den bibliographischen Angaben zu diesem Buch.
Extrahieren Sie nach dem Download alle Dateien des ZIPArchivs unter Verwendung der relativen Pfadnamen in ein von
Ihnen gewähltes Verzeichnis Ihres Rechners.
Die Distribution enthält die Java-GUl-Anwendung SQLClient. mit
der beliebige SQL-Anweisungen für relationale Datenbanken
ausgeführt werden können. sofern ein JDBC-Treiber für das jeweilige Datenbankmanagementsystem vorliegt.
ht tp://ja va.sun . com/javase!
Java Standard
Hier finden Sie die neueste Version zur Java Standard Edition Edition
(Iava SE) für diverse Plattformen sowie die zugehörige Dokumentation. Beachten Sie die für Ihre Plattform zutreffende Installationsanweisung .
Eclipse:
http://www.eclipse.org
NetBeans:
htt p://www.netbeans.org
Java-Editor,
http://www.ja vaed itor.org
JCreator,
http://www.jcreator.com
JDeveloper,
http://www.oracle.com/technology/products/jdev/
Intelli] lDEA,
http://www.j etbrains .com/idea/
]ava-Entwicklungsumgebungen und
-Editoren
http://ant.apache.org/
ApacheAnt
http://dev.mysql.com
MySQL Community
Server, Workbench ,
Connector!j
http://db.apache.org/derby/
Apache Derby
Internet-Quellen
368
Apache XML-RPC
http://ws .apache.org/xmlrpc/
XML-RPC-Lihrary
htt p://sourceforge.net/projects/phpxmlrpc/
jürPHP
TCP-Monitor
http://tcpmon.dev.java.net
Webserver,
Servlet-Container
http://httpd.apache.org
http://tomcat.apache.org
JMS
http://java .sun.com/products/jms/
Apache ActiveMQ
http://activemq.apache.org
Metro Web Service
Stack
http://metro.dev.java.net
ProtokollSpezifikationen
UDP:
http://www.i etf.org/rfc/rfc768 txt
TCP:
http://www.ietf.org/r fc/rfc793 txt
Ports:
http://www.lana.org/asslgnments/port numbers
HTTP 1.0:
http://www.ietf.org/r fc/rfc I945.txt
HTTP 1.1:
http://www.i etf.org/rfc/rfc2616.txt
HTTP Status-Code:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec l0 html
MIME:
http://www.ietf.org/rfc/rfc I521.txt
Base64:
http://www.ietf.org/rfc/rfc2045 txt
Basic Authentication:
http://www.ietf.org/rfc/rfc2617 txt
XML-RPC:
http://www.xmlrpc.com
Literaturhinweise
In den Vorbemerkungen des ersten Kapitels wurden die zum
Verständnis nötigen Vorkenntnisse der Leserinnen und Leser zu
Java, Datenbanken, SQL usw, aufgeführt
Die folgenden Bücher sind für eine Einführung in diese Themen
bzw, eine Vertiefung gut geeignet
•
Abts , D" Grundkurs Java, Von den Grundlagen bis zu Daten- Java-Grundlagen
bank- und Netzanwendungen. Vieweg+Teubner, 6, Auflage
2010
•
Block, M" Java-Intensivkurs, Springer, 2, Auflage 2010
•
Kiwitter, P. Eclipse in der Java-Entwicklung, Addison-Wesley,
1, Auflage 2008
•
Poetzsch-Heffter, A.: Konzepte objektorientierter Programmierung, Mit einer Einführung in Java, Springer, 2, Auflage 2009,
•
Edlich, S,; Staudemeyer,]" Ant - kurz & gut O'Reilly, 2, Auflage 2006
•
Matzke, B" Ant. Eine praktische Einführung in das Java-BuildTool, dpunktverlag, 2, Auflage 2005
•
Papp, G.: Konfigurationsmanagement mit Subversion, Ant
und Maven, dpunktverlag, 2, Auflage 2008
•
Bengel, G.: Grundkurs Verteilte Systeme. Vieweg+Teubner, 3. Verteilte Systeme
Auflage 2004
•
Dunkel, J,; Eberhart, A,; Fischer, S,; Kleiner, c,; Kosehel A"
Systemarchitekturen für Verteilte Anwendungen. Hanser, 1.
Auflage 2008
•
Hammerschall, U.: Verteilte Systeme und Anwendungen.
Pearson Studium, 1, Auflage 2005
•
Harold, E, R" Java Network Programming, O'Reilly, 3, Auflage 2004
•
Heinzl, S.; Mathes, M.: Middleware in Java. Vieweg+Teubner,
1, Auflage 2005
•
Mandl, P" Masterkurs Verteilte betriebliche Informationssysteme. Vieweg+Teubner, 1, Auflage 2009
•
Oechsle, R" Parallele und verteilte Anwendungen in Java,
Hanser, 2, Auflage 2007
Apache Ant
370
Internet-/Web-
Literaturhinweise
•
Schill, A.; Springer, T.: Verteilte Systeme. Springer, 1. Auflage
2007
•
Corner, D. E.: Computernetzwerke und Internets. Pearson
Studium, 3, Auflage 2003
•
Erlenkötter, H" HTML Rowohlt Tb"
•
Gourley, D,; Totty, B" HTTP, The Definitive Guide. O'Reilly,
5, Auflage 2007
•
Mandl, P,; Bakomenko, A,; Weiß, ]" Grundkurs Datenkommunikation, Vieweg+Teubner, 1, Auflage 2008
•
Meinel, c.; Sack, H.: \Xf\XT\Xl. Kommunikation, Intemetworking, Web-Technologien, Springer, 1, Auflage 2004
•
Moodie, M" Pro Apache Tomcat 6, Apress,
•
Münz, S. u. a.: SELFHTML. http://de.selfhtml.org
•
Musciano, c.; Kennedy, B.; Wolfram, E.; Schenk, I.: HTML
und XHTML Das umfassende Handbuch, O'Reilly, 5, Auflage
2007
•
Niederst,].: HTML & XHTML kurz & gut. O'Reilly, 3. Auflage
2006
•
Scherif,]" Grundkurs Computernetze. Vieweg+Teubner,
Auflage 2006
•
Erlenkötter, H" XML Extensible Markup Language von Anfang an, Rowohlt Tb" 1, Auflage 2003
•
Hauser, L XML Standards, entwicklerpress,
•
Scholz, M,; Niedermeier, S" Java und XML Galileo Press, 2,
Auflage 2009
•
Vonhoegen, H.: Einstieg in XML. Galileo Press, 5. Auflage
2009
•
Faeskom-Woyke, H.; Eertelsmeier, B.; Riemer, P.; Bauer, E.:
Datenbanksysteme, Theorie und Praxis mit SQL2003, Oracle
und MySQL Pearson Studium, 1, Auflage 2007
•
Kleinschmidt, P,; Rank, C" Relationale Datenbanksysteme,
Eine praktische Einführung, Springer, 3, Auflage 2005
•
Kleuker, S" Grundkurs
Teubner, 1, Auflage 2006
•
Kofler, M.; Öggl, B.: PHP 5.3 & MySQL 5.4. Addison-Wesley,
1, Auflage 2010
•
Kuhlmann, G .; Müllmerstadt, F" SQL Der Schlüssel zu relationalen Datenbanken, Rowohlt Tb" 2004
Technologien
XML
Datenbanken
und SQL
1,
Auflag e 2003
1,
Auflage 2007
1,
1,
Auflage 2006
Datenbankentwicklung,
Vieweg+
Literaturhinweise
371
•
Steiner, R.: Grundkurs Relationale Datenbanken. Vieweg+
Teubner, 7, Auflage 2009
•
Wieken, J,-H" SQL - Einstieg für Anspruchsvolle, Pearson
Studium, 1, Auflage 2009
•
Heuser, 0.; Holubek, A: Java Web Services in der Praxis.
dpunktverlag, 1, Auflage 2010
•
Kalin, M" Java Web Services, Up and Running. O'Reilly,
Auflage 2009
1,
Web Services
Stichwortverzeichnis
@MTOM 355
@Oneway 344
@WebMethod 333
@WebParam 333
@WebService 333
@XmlType 339
I-stufige Architektur 11
2-stufige Architektur 11, 27
3-stufige Architektur 12, 27
4-stufige Architektur 12
A
Accept 171
Accept-Encoding 171
Accep~Language 171
ActiveMQ 282, 285
Address Resolution Protocol 19
administriertes Objekt 282
Adressklasse 21
Agent 264
AlreadyBoundException 254
Anfrageparameter 169, 170
Antwortparameter 173, 175
Anwendungsschicht 20
Apache Tomcat 237, 343
Apache XML-RPC 206
API 14
Application Programming Interface
14
ARP 19
AsyncHandler 350
asynchron 10, 281, 346
asynchrone Kommunikation 10
Auszeichnungssprache 80
Auto-Commit 45 ,46
Autoloading 35
B
backlog 120
Base64 218, 240, 353
base64Binary 352
Basic Authentication 240
Batch-Processing-System 5
Batch-Update 52, 56
BIGINT 41,43
BINARY 42, 43
bindings-Dokument 347
BIT 42,43
C
CachedRowSet 74
CallableStatement 91
Callback 10, 268, 346
CHAR 42,43
CIDR 21
Classless Inter-Domain Routing 21
ClassLoader 143
Client 8, 9
Client/Server-Modell 8
Client/Server-System 5, 8
ClientFactory 234
Client-Socket 118, 119
Code First 356
Commit 46
ConnectException 120
Connection 30, 36, 46, 55, 68, 171,
284, 287
ConnectionFactory 283, 284, 286
Content-Length 171, 175
Content-Type 175
Context 276
Contract First 356
CORBA 274
D
DatabaseMetaData 36, 58
DatagramPacket 101 , 102
DatagramSocket 101, 102, 105, 106
Date 44, 175
DATE 42 ,43
Datenbank-Middleware 14
Datenhaltung 6
DECIMAL 42, 43
DELETE 170
Stichwortverzeichnis
374
Destination 283, 285
DHCP 100
DNS 22,100
DNS-Server 22
Domain Name System 22, 100
Domain-Name 22
DOUBLE 41 ,43
dreistufige Architektur 12, 27
DriverManager 30, 35, 36
Dynamic Hast Configuration Protocol
100
dynamischer Proxy 233
HTTP-Antwort 166, 173
HTTP-Client 166
HttpContext 186
HttpExchange 188
HttpHandler 186, 188
HTTP-Methode 170
HttpServer 186
HTTP-Server 166
Hypertext Transfer Protocol 20, 117 ,
165
I
fault 340
Fehlertoleranz 7
Fehlertransparenz 14
File Transfer Protocol 20, 117
FileNameMap 192
FLOAT 41,43
Framework 158
Fremdschlüssel 32
FTP 20, 117
Future 350
lDL 274
IETF 99, 117, 167, 171
HOP 274
IN 93
Inet4Address 23
Inet6Address 23
InetAddress 23, 24
InetSocketAddress 186
InitialContext 276
INOUT 93
INTEGER 41,43
Internet 18
Internet Engineering Task Force 99
Internet Protocol 18, 19
Intranet 18
InvocationTargetException 151, 152
IP 18, 19
IP-Adresse 21
IP-Filterung 235
IPv4 21
IPv6 21
G
J
E
einstufige Architektur 11
EJB 274
Endpoint 335
Executor 187
Extensible Markup Language 80
Extensible Stylesheet Language
Transformation 86
F
GET 170,173
H
Handler 208
HEAD 170
Headers 189
Heterogenität 8
Host 170
HTML 80
HTTP 20, 117, 165, 327
HTTP 1,0 167
HTTP 1,1 167
HTTP-Anfrage 166, 169
Java Database Connectivity 27
Java Message Service 282
Java Remote Method Protocol 253
java.rmi.server.codebase 267
JAX-WS 332
JDBC 14,27
JDBC-Datentyp 41
JDBC-Net-Treiber 29
JDBC-ODBC-Bridge 29
JDBC-Treiber 28
JMS 282
JMS-Client 282
JMSDestination 294
Stichwortverzeichnis
]MSException 286
]MSExpiration 294
]MSMessageID 294
]MSPriority 294
]MS-Provider 282
]MSReplyT 0 297
]MSTimestamp 294
]NDI 276
]RMP 253
K
keytool 242
Klassenlader 143
Kommunikationsprotokoll 18
Konfigurationsproblem 7
L
Lastverteilung 7
localhost 22
LocateRegistry 256, 257
LONGVARBlNARY 42,43
LONGVARCHAR 42 ,43
M
MalformedURLException 203
MapMessage 301
mehrstufige Architektur 11
Message 282, 284, 294
Message Broker 281
Message Consumer 282
Message Oriented Middleware 281
Message Producer 282
Message Selector 310
MessageConsumer 285, 287
MessageListener 288
MessageProducer 285, 287
Method 196
Metro Web Service Stack 332
Middleware 13
Migrationstransparenz 14
MIME 171,191
MOM 281
MOM-Server 281
monolithisches System 5
MTOM 354
MTOMFeature 355
Multicast 113
Multicast-Adresse 113
375
Multicast-Gruppe 113
Multicasting 113
MulticastSocket 114
Multimedia Streaming 100
Multipurpose Internet Mail Extension
171
Multi-Tier-Architektur 11
N
nachrichtenorientierte Middleware
281
Nachrichtenziel 283
Namensdienst 249, 274, 276
Naming 254, 255, 259
Native-API-Treiber 29
Native-Protokoll-Treiber 30
Nebenläufigkeitstransparenz 14
Netzadresse 21
Netzinfrastruktur 8
NotBoundException 254, 255
NULL 54
Nullwert 54, 55
NUMERIC 42, 43
o
ODBC-Treiber 29
OMG 274
Open Database Connectivity 29
Ortstransparenz 13
OUT 93
P
P2P 285
Parallelbetrieb 10
Personal Computer 5
Point-to-Point-Modell 285
Policy 355
polling 346
Polling 268
POP 117
Portnummer 22
POST 170, 172
Post Office Protocol 117
Präsentation 6
PreparedStatement 55, 59, 64
Primärschlüssel 32
PropertyHandlerMapping 208
Proxy 252
376
Pub/Sub 301
Publisher 268, 301
Publish-Subscribe-Modell 301
Pull-Prinzip 289
Push-Prinzip 291
PUT 170
Q
Query String 173
Queue 285 , 294
QueueBrowser 294
QueueSession 294, 298
R
REAL 41,43
Rechneradresse 21
Registry 249, 254
Remote 250
Remote Interface 250
Remote Method Invocation 15, 249
Remote Object 251
Remote Procedure Call 15, 150, 205
Remote Reference 252
RemoteException 251
Replikationstransparenz 14
Request-Reply-Modell 297
Response 350
ResultSet 30, 39, 43, 44, 49, 54, 65,
68,71
ResultSetMetaData 49
RFC 99, 117, 167, 171
RMI 15, 249
rmic 253
rmiregistry 253
Rollback 46
Router 18
RowSet 74
RPC 15, 150, 205
RPC-Modell 14
S
SAX-Parser 82
Schichtenmodell 19
Secure Socket Layer 242
Security Manager 149 , 256, 267
SEI 333
Serializable 258
Serialization Stream Header 132
Stichwortverzeichnis
Server 8, 9, 175
ServerSocket 119
Server-Socket 118
Server-Socket 119
Service Endpoint Interface 333
Service-Anbieter 331
Service-Nutzer 331
Service-orientierte Architektur 331
Service-Verzeichnis 331
Servlet-Container 237
Session 284 , 287, 301
Sicherheitsrisiko 8
Simple Mai! TransferProtocol20.117
Simple Network Management Protocol
100
Skalierbarkeit 7
Skeleton 252
SMALLINT 41,43
SMTP 20,117
SNMP 100
SOA 331
SOAP 207, 327 , 328
Socket 100, 119, 121
SocketException 101
SocketTimeoutException 105, 119,
120
SQL 27
SQL-Datentyp 41
SQLException 36, 59
SSL 242
Statement 30, 39, 46, 59, 97
Status-Code 174
Stored Procedure 91
Stub 252
Subscriber 268, 301
synchron 10
synchrone Kommunikation 10
T
tag 80
TCP 18, 20, 117
TCP/IP 18
Telnet 20, 117
TemoraryQueue 297
TextMessage 288
TFTP 100
Thread-PooI 156
Time 44
Stichwortverzeichnis
TIME 42,43
Timeout-Steuerung 105, 119, 120
Timesharing-System 5
Timestamp 44, 45
TIMESTAMP 42,43
Time-to-Live 113
TINYINT 41, 43
Top Level Domain 22
Topic 301, 306
TopicSubscriber 306
Transaktion 45
Transaktionsmodus 314
Transmission Control Protocol 18, 20,
117
transparent 13
Transportschicht 20
Trivial File Transfer Protocol 100
TTL 113
Types 41
U
DDP 20,99
DDP-Datagramm 99
DDP-Socket 100
Unicast 113
UnicastRemoteübject 251
Uniform Resource Locator 35, 165,
202
UnknownHostException 23
UnsupportedEncodingException 179
UR! 188
URL 35, 165, 202, 203
URL-Codierung 173
URLConnection 191, 203
URLDecoder 179
URLEncoder 179
User Datagram Protocol 20, 99
User-Agent 170
v
VARBINARY 42, 43
VARCHAR 42,43
377
Verarbeitung 6
Verbindungsfabrik 283
Verbindungsschicht 19
Vermittlungsschicht 19
verteiltes System 6
Verteilung 6
Verteilungsplattform 8
Verteilungstransparenz 13
vierstufige Architektur 12
W
Warteschlange 281
Web Service 207, 327
WebServer 207, 235
well-known service 22
Wirtschaftlichkeit 7
Worid Wide Web 20, 165
WSDL 327, 329
wsgen 334
ws import 336
WWW 20,165
X
XML 80,327
XML-RPC 205
XML-RPC-Anfrage 206
XML-RPC-Antwort 206
XmlRpcClient 209, 210
XML-RPC-Client 209
XmlRpcClientConfiglmpl 210, 246
XML-RPC-Datentypen 212
XmlRpcException 208
XmlRpcServer 207, 237 , 245
XML-RPC-Server 207
XmlRpcServerConfiglmpl 245
XSLT 80, 86
Z
Zugriffstransparenz 13
zweistufige Architektur 11, 27
Herunterladen