This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git

commit da392652e0b687eebdb28dfe7e72f89b05bdc0e7
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Jun 23 07:17:58 2026 +0000

    [#11683] Install JUL-to-SLF4J bridge to route java.util.logging through 
Maven logging
    
    Adds the jul-to-slf4j bridge so that libraries using java.util.logging
    (JUL) have their log output routed through SLF4J and Maven's logging
    system, instead of writing directly to stderr.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 apache-maven/pom.xml                                               | 7 +++++++
 impl/maven-cli/pom.xml                                             | 4 ++++
 .../main/java/org/apache/maven/cling/invoker/LookupInvoker.java    | 5 +++++
 pom.xml                                                            | 5 +++++
 4 files changed, 21 insertions(+)

diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml
index 9d32fb3cd7..c61af53502 100644
--- a/apache-maven/pom.xml
+++ b/apache-maven/pom.xml
@@ -78,6 +78,13 @@ under the License.
       <version>${slf4jVersion}</version>
       <scope>runtime</scope>
     </dependency>
+    <!-- bridge from java.util.logging (JUL) to SLF4J -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jul-to-slf4j</artifactId>
+      <version>${slf4jVersion}</version>
+      <scope>runtime</scope>
+    </dependency>
     <dependency>
       <groupId>org.apache.maven.resolver</groupId>
       <artifactId>maven-resolver-connector-basic</artifactId>
diff --git a/impl/maven-cli/pom.xml b/impl/maven-cli/pom.xml
index 39b6fcaa5e..5d7304af5e 100644
--- a/impl/maven-cli/pom.xml
+++ b/impl/maven-cli/pom.xml
@@ -195,6 +195,10 @@ under the License.
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jul-to-slf4j</artifactId>
+    </dependency>
     <dependency>
       <groupId>commons-cli</groupId>
       <artifactId>commons-cli</artifactId>
diff --git 
a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
 
b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
index d29e09a5fc..bf2e0f8c65 100644
--- 
a/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
+++ 
b/impl/maven-cli/src/main/java/org/apache/maven/cling/invoker/LookupInvoker.java
@@ -90,6 +90,7 @@
 import org.jline.terminal.impl.AbstractPosixTerminal;
 import org.jline.terminal.spi.TerminalExt;
 import org.slf4j.LoggerFactory;
+import org.slf4j.bridge.SLF4JBridgeHandler;
 import org.slf4j.spi.LocationAwareLogger;
 
 import static java.util.Objects.requireNonNull;
@@ -428,6 +429,10 @@ protected Consumer<String> doDetermineWriter(C context) {
     }
 
     protected void activateLogging(C context) throws Exception {
+        // Route java.util.logging (JUL) through SLF4J
+        SLF4JBridgeHandler.removeHandlersForRootLogger();
+        SLF4JBridgeHandler.install();
+
         context.slf4jConfiguration.activate();
         if (context.options().failOnSeverity().isPresent()) {
             String logLevelThreshold = 
context.options().failOnSeverity().get();
diff --git a/pom.xml b/pom.xml
index 337f6b862b..027a3dfa69 100644
--- a/pom.xml
+++ b/pom.xml
@@ -506,6 +506,11 @@ under the License.
         <version>${slf4jVersion}</version>
         <optional>true</optional>
       </dependency>
+      <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>jul-to-slf4j</artifactId>
+        <version>${slf4jVersion}</version>
+      </dependency>
       <dependency>
         <groupId>ch.qos.logback</groupId>
         <artifactId>logback-classic</artifactId>

Reply via email to