2016-04-19 3 views
2

Ich denke, dass ich ein sehr allgemeines Problem habe, dass ich Maven zu lösen erwarten, aber ich kann nicht die entsprechenden Plug-in ...Wie Sätze von Eigenschaften Dateien in Maven validieren

Hintergrund

finden

Wie bei den meisten vernünftig großen Projekten muss ich meine Anwendung in verschiedenen Umgebungen bereitstellen. Sagen wir, sie heißen "Entwicklung", "qa" und "Produktion". In jeder dieser Umgebungen kommuniziert meine Anwendung mit einem anderen Back-End-Server und speichert ihre Daten in einer anderen Datenbank. Anstatt alle Einstellungen in meiner Anwendung zu programmieren, erstelle ich eine Java-Eigenschaftendatei für jede Umgebung und stelle einfach die richtige mit der Anwendung bereit. In meinem Quellcode wird in etwa so aussehen:

<root> 
    |-- conf 
    |  |--develop 
    |  | \-- application.properties 
    |  |--qa 
    |  | \-- application.properties 
    |  \--production 
    |   \-- application.properties 
    \-- pom.xml 

Das Problem

Wenn der Entwickler eine neue Einstellung zu dem Projekt hinzufügt es ist zu einfach conf\development\application.properties Datei zu aktualisieren, aber vergessen, die anderen Dateien zu aktualisieren. Wenn die Einstellung fehlt, verursacht dies normalerweise eine Laufzeit, die auf einem Produktionsserver katastrophal sein könnte.

Die Frage

Gibt es eine Maven-Plugin, dass alle drei Versionen von application.properties, um sicherzustellen, verwendet werden könnte, die genau denselben Satz von Tasten enthalten. Wenn ein (oder mehrere) Schlüssel in einer der Dateien fehlt, sollte der Build fehlschlagen.

+0

Zusammenfassend möchten Sie überprüfen, dass alle 3 'application.properties' die gleichen Schlüssel haben. Möchten Sie auch bestätigen, dass sie einen bestimmten Schlüssel haben? – Tunaki

+0

Die einfachste Lösung wäre, einen Komponententest zu schreiben, der diese ... – khmarbaise

+0

@Tunaki Ich habe die Frage aktualisiert, um ein bisschen klarer zu sein, aber ja - ich möchte validieren, dass jede der Eigenschaftendateien genau das gleiche Set enthält von Schlüsseln. Der Build sollte fehlschlagen, wenn einer der Schlüssel fehlt, da sie alle wichtig sind. – Stormcloud

Antwort

1

Ich würde develop a Maven plugin:

  • mit einem appropriate parameter, z.B. files.

    Siehe this answer für Beispiele zur Implementierung mehrere Werte Parameter.

  • , die die drei .properties Dateien liest und füllt eine Map<String, Integer> (wobei: String key, Integer count).

  • Wenn einer der Integer ist nicht gleich der Anzahl der Dateien am Ende werfen Sie einen org.apache.maven.plugin.MojoFailureException. Das gleiche gilt, wenn einer der Werte ungültig ist, z. leer oder sonst syntaktisch falsch.

Ich würde das Ziel des Plugins an die generate-resources Phase binden.

+0

Leider denke ich, dass dies die beste Lösung sein könnte. Ich hatte mir vorgestellt, dass dies eine häufige genug Anforderung wäre, aber ich vermute, dass ich falsch liege. Vielen Dank – Stormcloud

Verwandte Themen