如何在 logback.xml 中获取 Maven 项目版本
how to get maven project version in logback.xml
我想记录项目版本号,如何在logback配置文件中获取maven项目版本。
这是 Maven 文件。
<groupId>com.shanil</groupId>
<artifactId>loggingDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>loggingDemo</name>
<description>Demo project for Spring Boot logging</description>
这里是logback配置文件
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|**version number here**| %msg%n
</Pattern>
</layout>
</appender>
你可以有一个构建步骤,它采用 模板 logback 文件并填充一些占位符。从 logback 的角度来看,版本将只是一个任意字符串,就像 CEF:1|CompanyTest|
部分一样。
Maven资源插件应该可以实现这个。它使用“过滤”来替换占位符。
<build>
<resources>
<resource>
<includes>
<include>some/dir/logback.template.xml</include>
</includes>
<targetPath>some/outputpath/logback.xml</targetPath>
<filtering>true</filtering>
</resource>
</resources>
</build>
您的 logback 模板看起来像这样
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|${project.artifact.id}| %msg%n
</Pattern>
您可能想尝试更改分隔符;不确定默认格式 ${...}
是否可以与 logback 的格式 {...}
很好地混合。因此,您可以将分隔符更改为 **
或其他内容。
答案在这里。
模式
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|${project.artifact.id}| %msg%n
</Pattern>
pom.xml
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>logback-test.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<encoding>UTF-8</encoding>
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>
我想记录项目版本号,如何在logback配置文件中获取maven项目版本。 这是 Maven 文件。
<groupId>com.shanil</groupId>
<artifactId>loggingDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>loggingDemo</name>
<description>Demo project for Spring Boot logging</description>
这里是logback配置文件
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|**version number here**| %msg%n
</Pattern>
</layout>
</appender>
你可以有一个构建步骤,它采用 模板 logback 文件并填充一些占位符。从 logback 的角度来看,版本将只是一个任意字符串,就像 CEF:1|CompanyTest|
部分一样。
Maven资源插件应该可以实现这个。它使用“过滤”来替换占位符。
<build>
<resources>
<resource>
<includes>
<include>some/dir/logback.template.xml</include>
</includes>
<targetPath>some/outputpath/logback.xml</targetPath>
<filtering>true</filtering>
</resource>
</resources>
</build>
您的 logback 模板看起来像这样
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|${project.artifact.id}| %msg%n
</Pattern>
您可能想尝试更改分隔符;不确定默认格式 ${...}
是否可以与 logback 的格式 {...}
很好地混合。因此,您可以将分隔符更改为 **
或其他内容。
答案在这里。 模式
<Pattern>
CEF:1|CompanyTest|%X{nameofapplication:-loggingDemo}|${project.artifact.id}| %msg%n
</Pattern>
pom.xml
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>logback-test.xml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<encoding>UTF-8</encoding>
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
</configuration>
</plugin>
</plugins>