Maven resource filtering : Auswirkungen des @ - symbols in den Ressource-Dateien
Ich bin mit dem Maven assembly plugin zur Vorbereitung einige Konfigurations-Artefakte, die für verschiedene Umgebungen, und ich bin mit der Ressource Filterung zu ersetzen, parameter-Werte.
Stieß ich auf ein seltsames Verhalten, wo ich eine property-Datei mit dem Inhalt wie folgt:
###########################
############################
env.name=${Ersatz.Wert}
Anwesenheit des ' @ ' - symbol für den Autor der e-mail war, die alle die Eigenschaft Verweise werden ignoriert.
Ich habe versucht, auf der Suche nach Dokumentation, warum das passiert - aber nichts finden können, dass die Antworten dieses Verhalten. Jeder hilfreiche Informationsquellen zur Dokumentation oder eine Erklärung wäre sehr geschätzt werden.
Referenz:
- Maven version: 2.2.1
- Maven-Assembly-Plugin-version: 2.2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht dokumentiert, in der Filter-Sektion von der Maven-Assembly-Plugin, aber es sieht aus wie es verwendet die gleichen Standard-Trennzeichen als die Maven-Resources-Plugin die:
Also Folgendes würde gefiltert werden, wie gut:
Und dies erklärt auch, warum ein einzelnes
@
in der E-Mail-Adresse verursacht Probleme (das plugin nie findet die end-delimiter aus).Ist es möglich, konfigurieren Sie das Trennzeichen und eine escape-Zeichenfolge, wie es ist, wenn mit dem Maven-Resources-Plugin. Die Maven-Assembly-Plugin Dokumentation für das einzige Ziel stellt die details.
Einem Billigen workaround für dieses spezielle E-Mail-Adresse situation, wäre Sie zu vermeiden, mit einem einzigen
@
in der Datei zu filtern:Und als eine nutzen, Sie spam zu vermeiden 🙂
Sollten Sie das plugin explizit in Ihre pom.xml. Implizit ist es mit 2.4.1, die dieses Problem hat. Sie können überprüfen, welche version von maven verwenden ist, durch ausführen von maven -X-Ressourcen:Ressourcen.
Version 2.6 behoben dieses problem.
Ich hatte das gleiche problem, aber ich konnte nicht verwenden Sie die Pascal ' s Abhilfe, da @s waren Teil des gefilterten SQL-Skripts. Also ich erläuterte Pascal Lösung und habe nicht gefunden eine Weise, wie override default-Trennzeichen in-Assembly-Plugin. Aber, ich habe gefunden eine weitere nützliche post (ganz unten):
http://web.archiveorange.com/archive/v/F1XzEmhzIHiBcpS0RyC6
Die schlägt mit einem korrekt konfigurierten Ressource-plugin zu kopieren und filtern von problematischen Ressourcen und verwenden Sie dann diese gefilterte Ressourcen in das assembly-plugin. z.B.:
(pom.xml)
(distribution.xml)
ich hatte das gleiche problem, ich habe einen kleinen workaround:
müssen Sie mantain '@' char immer peer hinzufügen eines fiktiven Variablen
Hier der link zu Maven, JIRA issue:
https://issues.apache.org/jira/browse/MRESOURCES-141
Diese ernst zu Werke. Definieren Sie in einer properties-Datei wie folgt:
Sollten sich die negativen Punkte, wie es ist verrückt, dass es funktioniert.