Liebe Java-Community,
ich habe für eine Java-EE Anwendung, die am Ende des Builds in ein WAR gepackt wird, ein Übersetzungssystem geschrieben. Dieses manipuliert u.a. während dem Build einige XHTML-Dateien des Projekts. Dies geschieht über ein selbst geschriebenes Maven-Plugin. Das Problem ist nun, dass es mir nicht gelingt, diese Manipulationen vernünftig in den Build-Prozess zu integrieren.
Wichtig ist: Die Manipulation soll nur im deployten Code vorliegen, die Working Copy des Entwicklers soll unberührt bleiben.
Ich schildere meine Lösungsansätze und die dabei auftretenden Probleme:
0. Nach dem das Maven-War-Plugin das /target-Verzeichnis zusammengestellt hat und bevor dieses Verzeichnis in das WAR gepackt wird, die Daten manipulieren. Problem: Maven erlaubt nicht, sich an dieser Stelle in den Prozess reinzuklinken.
1. Maven ein anderes Quellcodeverzeichnis angeben, und die Daten vor dem Build aus dem Quellcodeverzeichnis des Entwicklers dorthin kopieren. Während des Kopierens die Manipulationen vornehmen. Problem: Die verwendete IDE Netbeans nimmt dann das alternative Quellcodeverzeichnis als Root und zeigt nur die manipulierten Daten an.
2. Für die Zeit des Builds die originalen Quelldateiem irgendwo sichern und im Quellcodeverzeichnis alles manipulieren. Nach dem Build die Originaldaten zurückkopieren. Problem: Sehr unsauber, kann früher oder später zu Datenverlust wegen Abbruch des Builds und sehr wütenden Kollegen führen.
3. Nach dem Zusammenbau des WAR das Archiv auspacken, Manipulationen vornehmen und das Archiv wieder zusammenpacken. Problem: Maven weigert sich dann, den Schritt install oder deploy auszuführen mit dem Fehler: The packaging for this project did not assign a file to the build artifact.
4. Es muss doch möglich sein, bei einem solch komplexen Buildsystem wie Maven, sich irgendwie vernünftig in den Build-Prozess mit reinzuhängen, auch wenn man Quellcode manipulieren will...
Vielen Dank für Eure Hilfe!
ich habe für eine Java-EE Anwendung, die am Ende des Builds in ein WAR gepackt wird, ein Übersetzungssystem geschrieben. Dieses manipuliert u.a. während dem Build einige XHTML-Dateien des Projekts. Dies geschieht über ein selbst geschriebenes Maven-Plugin. Das Problem ist nun, dass es mir nicht gelingt, diese Manipulationen vernünftig in den Build-Prozess zu integrieren.
Wichtig ist: Die Manipulation soll nur im deployten Code vorliegen, die Working Copy des Entwicklers soll unberührt bleiben.
Ich schildere meine Lösungsansätze und die dabei auftretenden Probleme:
0. Nach dem das Maven-War-Plugin das /target-Verzeichnis zusammengestellt hat und bevor dieses Verzeichnis in das WAR gepackt wird, die Daten manipulieren. Problem: Maven erlaubt nicht, sich an dieser Stelle in den Prozess reinzuklinken.
1. Maven ein anderes Quellcodeverzeichnis angeben, und die Daten vor dem Build aus dem Quellcodeverzeichnis des Entwicklers dorthin kopieren. Während des Kopierens die Manipulationen vornehmen. Problem: Die verwendete IDE Netbeans nimmt dann das alternative Quellcodeverzeichnis als Root und zeigt nur die manipulierten Daten an.
2. Für die Zeit des Builds die originalen Quelldateiem irgendwo sichern und im Quellcodeverzeichnis alles manipulieren. Nach dem Build die Originaldaten zurückkopieren. Problem: Sehr unsauber, kann früher oder später zu Datenverlust wegen Abbruch des Builds und sehr wütenden Kollegen führen.
3. Nach dem Zusammenbau des WAR das Archiv auspacken, Manipulationen vornehmen und das Archiv wieder zusammenpacken. Problem: Maven weigert sich dann, den Schritt install oder deploy auszuführen mit dem Fehler: The packaging for this project did not assign a file to the build artifact.
4. Es muss doch möglich sein, bei einem solch komplexen Buildsystem wie Maven, sich irgendwie vernünftig in den Build-Prozess mit reinzuhängen, auch wenn man Quellcode manipulieren will...
Vielen Dank für Eure Hilfe!