Я пытаюсь напечатать версию своих приложений на ранних этапах журнала, прежде чем любой другой код сможет выполнить, поэтому в случае ошибки версия включается в файл журнала.
@SpringBootApplication
public class Application {
public static void main( String... args ) {
var ctx = SpringApplication.run( Application.class, args );
ctx.getBeanProvider( BuildProperties.class ).ifAvailable( bp -> {
LogManager.getLogger( Application.class ).info( bp.getArtifact() );
} );
}
}
но блок в ifAvailable
не выполняется, я бы хотел напечатать версию особенно.
примечание: это в build.gradle.kts
springBoot {
buildInfo() // generates BOOT-INF/classes/META-INF/build-info.properties
}
обновление завершается неудачно без такого компонента ...
@SpringBootApplication
public class Application {
public static void main( String... args ) {
SpringApplication.run( Application.class, args );
}
@Bean
CommandLineRunner runner( BuildProperties bp ) {
return args -> LogManager.getLogger( Application.class ).info( bp.getArtifact() );
}
}
обновление 2: не обязательно должно быть после баннера, но должно быть достаточно рано, чтобы оно печаталось до любой проверки / ошибок из пользовательского кода.