从version.sbt动态填充版本

时间:2017-01-23 04:09:57

标签: sbt logback

我正在尝试从version.sbt获取该版本,并将其填充到logback.xml的日志追加器的applicationVersion字段。

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>

我尝试添加${application.version}${version},但没有成功。

我该怎么做? 请分享您的想法。

由于

1 个答案:

答案 0 :(得分:2)

logback.xml文件中插入的值只是Java系统属性。您所要做的就是为定义所需值的Java命令行添加一个值:

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

使用此标志,您应该能够在XML文件中插入版本:

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