2017-01-23 3 views
2

Ich versuche, die Version von version.sbt zu nehmen und es logback.xml 's Log Appender applicationVersion Feld ausfüllen.Dynamisch befüllen Version von version.sbt

version.sbt

version in ThisBuild := "0.4.63"

logback.xml

<configuration debug="true" scan="true" scanPeriod="60 seconds"> 

    <appender name="ADP-MESSAGING" class="com.agoda.adp.messaging.logging.appenders.LogbackAppender"> 
     <applicationName>MyApp</applicationName> 
     <applicationAssemblyName>myapp</applicationAssemblyName> 

     <applicationVersion>0.4.61</applicationVersion> 

     <!-- <applicationVersion>${application.version}</applicationVersion> --> 

     <apiKey>[email protected]#[email protected][email protected]</apiKey> 
     <getCallerData>false</getCallerData> 
    </appender> 

    .... 

    <root level="WARN"> 
     <appender-ref ref="ADP-MESSAGING" /> 
     <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

Ich habe versucht, durch ${application.version} Hinzufügen ${version} aber keinen Erfolg.

Wie kann ich das tun? Bitte teilen Sie Ihre Gedanken.

Dank

Antwort

2

Die in einer logback.xml Datei Interpolationswerte sind einfach Systemeigenschaften Java. Alles, was Sie tun müssen, ist, einen Wert für die Java-Kommandozeile fügen Sie den Wert definieren Sie wollen:

// NOTE: This will only work when running through sbt. You'll have to 
// append the same value to your startup scripts when running elsewhere. 
javaOptions += "-Dapplication.version=" + version.value 

Mit dieser Flagge, Sie sollten in der Lage sein, die Version in Ihrer XML-Datei einfügen:

<applicationVersion>${application.version}</applicationVersion> 
+0

Thank du für dich antwortest. Wir führen die Anwendung über ein Shell-Skript aus. Ich suche nach einer Möglichkeit, '' in 'logback.xml 'dynamisch zu aktualisieren, ohne das Shell-Skript jedes Mal zu ändern, wenn wir die Anwendung ausführen. –

+0

Ich denke, die anderen beiden Optionen sind durch ein Argument zu Ihrem Shell-Skript übergeben, oder bearbeiten Sie 'logback.xml' und commit es immer wenn' version.sbt' ändert. Haben Sie beides vor Augen? – jkinkead

Verwandte Themen