Using these dependencies

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.brave</groupId>
    <artifactId>brave</artifactId>
</dependency>

results in a

java.lang.IllegalStateException: Failed to introspect Class [org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@251a69d7]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) ~[spring-core-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:748) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740) ~[na:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:747) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:686) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:657) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1616) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:559) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:531) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:658) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:650) ~[spring-beans-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1287) ~[spring-context-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:862) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:850) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:837) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:777) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290) ~[spring-boot-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
    at com.example.micrometertracingfailing.MicrometerTracingFailingApplication.main(MicrometerTracingFailingApplication.java:10) ~[classes/:na]
Caused by: java.lang.NoClassDefFoundError: brave/http/HttpTracing
    at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
    at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[na:na]
    at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504) ~[na:na]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.0.0-20220710.183850-587.jar:6.0.0-SNAPSHOT]
    ... 21 common frames omitted
Caused by: java.lang.ClassNotFoundException: brave.http.HttpTracing
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
    ... 25 common frames omitted

There's a missing guard on the org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration - it's conditional on brave JAR, but HttpTracing is coming from another JAR.

We can either split the auto-configuration in two (one for brave, one for brave-http) or just add another guard clause to the existing one.

Comment From: wilkinsona

This no longer occurs as we have simplified the Brave and OTel auto-configuration to require their respective Micrometer Tracing bridges. The Brave bridge depends on brave-instrumentation-http which contains HttpTracing.