2016-04-15 15 views
0

Angenommen, ich habe eine Open-Source-Befehlszeilen-Java-Anwendung, die über SSH mit einem Server verbindet. Die Serveradresse, der Benutzername und das Passwort sind konfigurierbar und werden in einer Eigenschaftendatei gespeichert, so dass Benutzer ihren eigenen Zielserver angeben können. Offensichtlich gibt es für diese Art der Konfiguration keine Standardwerte.Verteilen einer Anwendung mit einer Konfigurationsdatei an andere Benutzer

Dies ist meine persönliche Konfiguration:

server=example.com:22 
username=exampleUser 
password=examplePassword 

Was ist der beste Weg, eine solche Properties-Datei zu bearbeiten, wenn meine Anwendung an andere Benutzer zu verteilen?

Bündeln Sie meine Anwendung mit einer leeren Eigenschaftendatei und weisen Sie den Benutzer an, sie zu bearbeiten, bevor Sie die Anwendung ausführen?

Erzähle ich den Benutzern in meinem Anwendungshandbuch, dass eine Eigenschaftendatei mit einem bestimmten Namen und bestimmten Einträgen vorhanden sein muss?

Bitten Sie den Benutzer, die Konfiguration beim allerersten Anwendungslauf anzugeben und die Anwendung diese Konfiguration auf den Datenträger schreiben zu lassen?

Ich glaube, dass meine Vorschläge viele Nachteile haben und ich würde gerne die Best Practices für dieses Problem kennenlernen. Die Frage ist nicht Java-spezifisch und ich bin interessiert, wie dies mit anderen Sprachen oder Frameworks gelöst wird.

Antwort

1

Sie sollen Befehlszeilen bieten schaltet die Informationen einzugeben, und dokumentieren sie, so etwas wie:

$ java -jar yourprogram.jar -u <username> -p <passwd> ssh://someserver 

Diese Optionen dokumentiert werden sollen, und es sollte ein --help Schalter seine Basisdokumentation anzuzeigen. Die Dokumentation sollte auch angeben, dass Sie diese Parameter weglassen können, wenn Sie sie in einer Eigenschaftendatei speichern, wie Sie vorschlagen. Für gute Beispiele, wie Sie dies tun, können Sie Programme wie git betrachten, die wahrscheinlich viel reicher sind als das, was Sie erreichen möchten, aber es ist ein gutes Beispiel für Best Practices für Befehlszeilen-Dienstprogramme.

Verwandte Themen