Die Angabe von-runtime-Parameter zur Konfiguration eines Maven gebaut Web-Anwendung
Ich bin ein Neuling in Maven, und ich Frage mich, ob es eine vernünftige Möglichkeit der Angabe von Konfigurations-Informationen von Parametern an eine web-Anwendung, die beim Erstellungsvorgang.
Was ich damit meine, ist das folgende. Mit Ant habe ich in der Regel erstellen Sie einen Ordner (z.B. config-params) und in diesem Ordner Stelle ich einige property-Dateien oder was auch immer andere notwendige Dateien mit den richtigen Einstellungen für die Umgebungen, in denen meine Anwendung ausgeführt wird.
Beispiel:
- test.jdbc.properties
- cert.jdbc.properties
- prod.jdbc.properties
- test.log4j.properties
- test.myapplication.properties
- test.web.xml
... ad nauseum
Dann, in meinem ant-build-script, das ich gerade gelesen, dass eine Profil-Konfiguration variable aus einer Projekt.Eigenschaften - Datei, die einfach nur an den Satz von Dateien, die ich gerne verwenden würde (test, cert oder prod).
So, ich habe keine sorgen zu machen über die überprüfung jeder möglichen framework-Konfigurations-parameter, wenn ich die Anwendung erstellen für eine bekannte Umgebung.
Also zwei Fragen:
-
Ist dies möglich mit dem Maven-POM in einem nicht hackish Weg? Ist es ein Stück von Maven Dokumentation, ein Buch oder eine Referenz, die sich mit dieser Phase der Anwendung erstellen?
-
Ist es ein sinnvoller Weg, um mein Ziel-Anwendung erstellen-Profil auf eine bestimmte Ausführung Umgebung (test, prod, etc.)? Ich denke, das könnte man offener zu debattieren, aber wenn es eine einfachere, elegantere Art und Weise des Umgangs mit dieser, ich bin alle Ohren :P.
Ich danke für jede Hilfe, die Sie bieten können. Prost!
InformationsquelleAutor Jesús Zazueta | 2012-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die erste Sache, die ich vorschlagen würde, um Ihre Konfiguration für den test env in src/test/resources kann verwendet werden für den test automatisch durch Maven. Die Produktion der Konfiguration sollte sich in src/main/resources was bedeutet, dass die Produktion der Konfiguration wird Sie automatisch während der Verpackung und loslassen.
Die andere Konfiguration der target-wie cert bedeutet, dass Sie benötigen, um Ihre Anwendung zu erstellen ein zweites mal für ein anderes Umfeld.
Bauen Sie durch eine CI-Umgebung, die produziert Artefakte für die verschiedenen Umgebungen ? Ja, als eine Lösung auf der Basis von Profilen ist nicht eine gute Wahl, Sie einfach, je nach Bedarf Ihrer Anwendung zu erstellen, die für jede Umgebung separat. Es wäre besser, zu bauen, erst einmal mit Artefakten, die für die verschiedenen Umgebungen.
Fangen wir mit etwas wie dieses:
Für jede Umgebung müssen Sie einen Ordner enthält die verschiedenen Konfiguration Teile (in diesem Fall die property-Dateien).
Sie müssen eine Konfigurations-Datei (für jede Umgebung) für das maven-assembly-plugin wie folgt:
Und natürlich eine Konfiguration für das maven-assembly-plugin wie dieses:
Das Ergebnis ist, dass nur eine einzige bauen, die produziert ein einzelnes Artefakt für jede Umgebung wie dieser:
artifactId-version-test.Krieg
artifactId-version-qa.Krieg
artifactId-version-Produktion.Krieg
Beschreibung hier: blog.soebes.de/index.php?/archives/...
InformationsquelleAutor khmarbaise
Lesen über Maven-build-profile.
Das grundlegende Konzept ist zu erstellen, die mehrere build-Konfigurationen in einem einzigen
POM
- Datei, und rufen Sie dann diese mitLassen Sie auch maven entscheiden, welches Profil zu verwenden ist, durch die Definition von
<activation/>
Regeln.InformationsquelleAutor npe