Ant-Build für verschiedene Servlet-Container?

Status
Nicht offen für weitere Antworten.
M

Melanie W.

Gast
Hallo,

ich möchte eine Webanwendung schreiben, die in verschiedenen Servlet-Container laufen soll (zB Jetty oder Tomcat). Nun soll beim Kompilieren automatisch alles in ein vorher festgelegtes Verzeichnis (z.B. Jetty/webapps oder tomcat/webapps) kopiert werden.

1. Frage: Wo legt man dieses Verzeichnis am besten ab? Im build.xml selbst? In einer Umgebungsvariablen, die vom build.xml ausgelesen wird?

2. Frage: Wie sieht's aus mit externen Bibliotheken, die von der Applikation benötigt werden? Woher kriegt der Webserver mit, dass er sie einbinden muss bzw. wie kriegt er sie in seinen Classpath?

Über Antworten würde ich mich sehr freuen ;-)
 

HaBaLeS

Aktives Mitglied
Zu 2.
Alle was in <path_to_webapp>/WEB-INF/lib/ liegt wird in den classpath aufgenommen. Ausserdem alles in <path_to_webapp>/WEB-INF/classes/

Zu 1. Ich würde es in ein Filterfile legen, das im Build.xml eingebunden wird.


@DP -- Meinst du die Gasterstellerin findet Ihren Thread wieder ?
 
M

Melanie W.

Gast
HaBaLeS hat gesagt.:
Meinst du die Gasterstellerin findet Ihren Thread wieder ?
Hat sie, danke ;-)

HaBaLeS hat gesagt.:
Zu 1. Ich würde es in ein Filterfile legen, das im Build.xml eingebunden wird.
Was ist ein Filterfile? Normalerweise hatte ich vor, eine leere Variable servlet_container definieren und, wenn da nichts drin steht, automatisch Calatina_Home zuzuweisen.

Das Target "deploy" soll dann in servlet_container kopieren. Wäre das eine gute Idee? Wie gesagt: Ich weiss ja nicht, was eine Filterdatei ist.
 

HaBaLeS

Aktives Mitglied
Filterfile ist glaube ich auch nicht der "offizielle" Name.

man kann in Ant propertyfiles definieren, und dann in der build.xml darauf zufreifen.

Code:
  <property file="${user.home}/build.properties" />
  <property file="build.properties"/>

Das erste liegt im Userhome des Entwicklers.

Code:
properties.filter.file=local.filter.rechnername

Das zweite könnte dan so aussehen und liegt im jeweiligen Projekt:
Code:
# Please set catalina.home and properties.filter.file
# in your ${user.home}/build.properties
#
project=xxxxxx

#Use this for configuration of thge application
conf.dir=${basedir}/conf
src.dir=${basedir}/src
jsp.dir=${basedir}/jsp
css.dir=${basedir}/styles
images.dir=${basedir}/images
webinf.dir=${basedir}/WEB-INF

build.dir=${webinf.dir}/classes
web.lib.dir=${webinf.dir}/lib
lib.dir=${webinf.dir}/lib
compile.debug=true
compile.deprecation=true
compile.optimize=false

Diese beiden sind für das Projekt allgemein, werden einmal aufgesetzt und dann nicht mehr verändert.
In einem dritten Propertyfile kann dann jeder Entwickler seine persönichen Konfigurationen machen, oder verschiedene Filertfiles für verschiedene Deplyments etc ....

Dies hat den Vorteil, das man bei einer Änderung der Pfade nicht immer das build.xml anpassen muss, sondern jeder sein "eigenes" Propertiefile entsprechend anpassen kann.


Hier noch ein kleiner Auschnitt, wie man in der build.xml dann darauf zugreifen kann.
Code:
 <ant dir="${common.project.basedir}/tools" antfile="build.xml" target="deploy"
                                inheritall="false" inheritrefs="false"/>
                <echo message="Copying the just build jar file from the common project ..." />
                <copy todir="${web.lib.dir}">
                        <fileset dir="${common.project.basedir}/tools/dist">
                                <patternset>
                                        <include name="*.jar"/>
                                </patternset>
                        </fileset>
                </copy>

Jetzt kommt vielleicht die Frage auf, warum Filterfile, wenn man nur properties da reinschreibt. Nunja ANT kann beim kopieren von ASCII dateien filtern.

Code:
 <target name="setup" >
                <filter filtersfile="${properties.filter.file}"/>
                <copy filtering="true" todir="${basedir}"
                         verbose="true"
                         overwrite="true">
                        <fileset dir="${conf.dir}">
                                <include name="*.sh" />
                        </fileset>
      </copy>

Wenn jetzt in meinem local.filter.rechnername jetzt ein eintrag ist wie:
bitte.filter.mich=Ich bin eine Ersetzung

Wird bei jeder Datei die kopiert wird nachgeschaut, ob folgendes konstrukt auftaucht:
@bitte.filter.mich@
Ist dies der Fall, wirs dies duch "Ich bin eine Ersetzung" ersetzt. Damit lassen sich z.B: Datenbanktreiber für verschiedene Umgebungen einfach im Filterfile ablegen.


Ich hoffe jetzt ist das mit dem filterfile klar, und vielleicht hast du ja auch eine Vorstellung bekommen, wie man damit dein ursprüngliches Problem recht eleganz Lösen kann.

Grüße
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M build.xml erkennt Java3D nicht Server einrichten und konfigurieren 2
O Ich Suche GTA 5 RP Server Scripter für atl:V Server einrichten und konfigurieren 0
S JVM Wartung und Optimierung für Sysadmins Server einrichten und konfigurieren 9
S Suche Apache Experte für Windows Server einrichten und konfigurieren 1
A Tomcat bekommt keine Schreibrechte für webapps Server einrichten und konfigurieren 6
TheJavaKid Cent OS für Java und MySQL konfigurieren Server einrichten und konfigurieren 21
schlingel Tomcat für den Produktiveinsatz Server einrichten und konfigurieren 14
NoXiD EJB 3.1 für JBoss 7 Server einrichten und konfigurieren 3
M minimalste Hardwareanforderungen für Jetty / Apache Archiva Server einrichten und konfigurieren 2
T App Server für Ubuntu gesucht Server einrichten und konfigurieren 9
M Hardwareempfehlung für TOMCAT Server Server einrichten und konfigurieren 8
V Keystore Type für Tomcat ändern Server einrichten und konfigurieren 2
I Beurteilung der Serverausstattung für JAVA Programm Server einrichten und konfigurieren 10
M Tomcat oder sonstiger Webserver für mehrere Projekte Server einrichten und konfigurieren 5
D Tomcat für SSLv2 konfigurieren Server einrichten und konfigurieren 6
M Mehrere Webprojekte für Kunden <-> Mehrere Tomcats? Server einrichten und konfigurieren 7
R JBoss AS 5.1: --host-Parameter für Windows-Service Server einrichten und konfigurieren 1
R Spring Server für Spring-Framework notwendig? Server einrichten und konfigurieren 3
I Tomcat für Dummies Server einrichten und konfigurieren 2
H reservierter Speicher für Tomcat Server einrichten und konfigurieren 8
H JDK für Tomcat notwendig Server einrichten und konfigurieren 7
A richtige Pfadangabe für den Tomcat Server einrichten und konfigurieren 8
B War-Datei für Tomcat. Pfadprobleme :( Server einrichten und konfigurieren 4
M Tomcat Umgebungsvariablen für JSP (CompilerError) Server einrichten und konfigurieren 5
M tomcat plugin für eclipse Server einrichten und konfigurieren 10
A Lucene für DB + Files? Server einrichten und konfigurieren 2
D commons db: schlankes framework für db-kommunikation unter j Server einrichten und konfigurieren 2

Ähnliche Java Themen

Neue Themen


Oben