Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamically populate version from version.sbt

Tags:

logback

sbt

I'm trying to take the version from version.sbt and and populate it to logback.xml's log appender's applicationVersion field.

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>s234W@#$WFW$@$@</apiKey>
        <getCallerData>false</getCallerData>
    </appender>

    ....

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

I tried by adding ${application.version}, ${version} but no success.

How can I do this? Please share your thoughts.

Thanks

like image 905
tharindu_DG Avatar asked Mar 10 '26 15:03

tharindu_DG


1 Answers

The values interpolated in a logback.xml file are simply Java system properties. All you have to do is add a value to your Java commandline defining the value you want:

// 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

With this flag, you should be able to interpolate the version in your XML file:

<applicationVersion>${application.version}</applicationVersion>
like image 97
jkinkead Avatar answered Mar 14 '26 16:03

jkinkead



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!