Hello,
For CI builds I like to have Maven print timestamped log messages.
With Maven 3.9.9, this works nicely:
----
mvn -Dorg.slf4j.simpleLogger.showDateTime=true
-Dorg.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss.SSS verify
----
However, when I run this command with Maven 4.0.0-rc-2, I get an
UnsupportedTemporalTypeException telling me that HourOfDay is an unsupported
field:
----
Apache Maven 4.0.0-rc-2 (273314404f85ec3c089e295d8b4e0cb18c287cf5)
Maven home: /opt/local/share/java/maven4
Java version: 21.0.5, vendor: Azul Systems, Inc., runtime:
/opt/local/Library/Java/JavaVirtualMachines/jdk-21-azul-zulu.jdk/Contents/Home
Default locale: nl_NL, platform encoding: UTF-8
OS name: "mac os x", version: "15.2", arch: "aarch64", family: "mac"
---------------------------------------------------
constituent[0]: file:/opt/local/share/java/maven4/conf/logging/
constituent[1]: file:/opt/local/share/java/maven4/lib/maven-xml-4.0.0-rc-2.jar
constituent[2]:
file:/opt/local/share/java/maven4/lib/maven-api-metadata-4.0.0-rc-2.jar
constituent[3]:
file:/opt/local/share/java/maven4/lib/maven-logging-4.0.0-rc-2.jar
constituent[4]: file:/opt/local/share/java/maven4/lib/maven-jline-4.0.0-rc-2.jar
constituent[5]:
file:/opt/local/share/java/maven4/lib/maven-api-toolchain-4.0.0-rc-2.jar
constituent[6]: file:/opt/local/share/java/maven4/lib/maven-cli-4.0.0-rc-2.jar
constituent[7]: file:/opt/local/share/java/maven4/lib/maven-core-4.0.0-rc-2.jar
constituent[8]:
file:/opt/local/share/java/maven4/lib/maven-resolver-transport-wagon-2.0.5.jar
constituent[9]:
file:/opt/local/share/java/maven4/lib/maven-api-plugin-4.0.0-rc-2.jar
constituent[10]:
file:/opt/local/share/java/maven4/lib/maven-compat-4.0.0-rc-2.jar
constituent[11]:
file:/opt/local/share/java/maven4/lib/maven-artifact-4.0.0-rc-2.jar
constituent[12]:
file:/opt/local/share/java/maven4/lib/maven-api-settings-4.0.0-rc-2.jar
constituent[13]:
file:/opt/local/share/java/maven4/lib/maven-api-core-4.0.0-rc-2.jar
constituent[14]:
file:/opt/local/share/java/maven4/lib/maven-api-annotations-4.0.0-rc-2.jar
constituent[15]:
file:/opt/local/share/java/maven4/lib/maven-resolver-util-2.0.5.jar
constituent[16]:
file:/opt/local/share/java/maven4/lib/maven-builder-support-4.0.0-rc-2.jar
constituent[17]:
file:/opt/local/share/java/maven4/lib/maven-toolchain-model-4.0.0-rc-2.jar
constituent[18]:
file:/opt/local/share/java/maven4/lib/maven-resolver-spi-2.0.5.jar
constituent[19]:
file:/opt/local/share/java/maven4/lib/maven-api-di-4.0.0-rc-2.jar
constituent[20]:
file:/opt/local/share/java/maven4/lib/maven-toolchain-builder-4.0.0-rc-2.jar
constituent[21]:
file:/opt/local/share/java/maven4/lib/maven-api-xml-4.0.0-rc-2.jar
constituent[22]:
file:/opt/local/share/java/maven4/lib/maven-model-builder-4.0.0-rc-2.jar
constituent[23]:
file:/opt/local/share/java/maven4/lib/maven-resolver-transport-jdk-2.0.5.jar
constituent[24]: file:/opt/local/share/java/maven4/lib/maven-di-4.0.0-rc-2.jar
constituent[25]:
file:/opt/local/share/java/maven4/lib/maven-repository-metadata-4.0.0-rc-2.jar
constituent[26]:
file:/opt/local/share/java/maven4/lib/maven-settings-4.0.0-rc-2.jar
constituent[27]:
file:/opt/local/share/java/maven4/lib/maven-xml-impl-4.0.0-alpha-9.jar
constituent[28]:
file:/opt/local/share/java/maven4/lib/maven-api-cli-4.0.0-rc-2.jar
constituent[29]:
file:/opt/local/share/java/maven4/lib/maven-resolver-named-locks-2.0.5.jar
constituent[30]:
file:/opt/local/share/java/maven4/lib/maven-resolver-impl-2.0.5.jar
constituent[31]:
file:/opt/local/share/java/maven4/lib/maven-api-model-4.0.0-rc-2.jar
constituent[32]:
file:/opt/local/share/java/maven4/lib/maven-settings-builder-4.0.0-rc-2.jar
constituent[33]:
file:/opt/local/share/java/maven4/lib/maven-resolver-transport-apache-2.0.5.jar
constituent[34]:
file:/opt/local/share/java/maven4/lib/maven-resolver-transport-file-2.0.5.jar
constituent[35]: file:/opt/local/share/java/maven4/lib/maven-impl-4.0.0-rc-2.jar
constituent[36]:
file:/opt/local/share/java/maven4/lib/maven-api-spi-4.0.0-rc-2.jar
constituent[37]:
file:/opt/local/share/java/maven4/lib/maven-embedder-4.0.0-rc-2.jar
constituent[38]:
file:/opt/local/share/java/maven4/lib/maven-model-4.0.0-rc-2.jar
constituent[39]:
file:/opt/local/share/java/maven4/lib/maven-resolver-connector-basic-2.0.5.jar
constituent[40]:
file:/opt/local/share/java/maven4/lib/maven-plugin-api-4.0.0-rc-2.jar
constituent[41]:
file:/opt/local/share/java/maven4/lib/maven-resolver-provider-4.0.0-rc-2.jar
constituent[42]:
file:/opt/local/share/java/maven4/lib/maven-resolver-api-2.0.5.jar
constituent[43]: file:/opt/local/share/java/maven4/lib/jline-native-3.28.0.jar
constituent[44]: file:/opt/local/share/java/maven4/lib/httpcore-4.4.16.jar
constituent[45]:
file:/opt/local/share/java/maven4/lib/jline-console-ui-3.28.0.jar
constituent[46]:
file:/opt/local/share/java/maven4/lib/plexus-component-annotations-2.1.0.jar
constituent[47]:
file:/opt/local/share/java/maven4/lib/plexus-interactivity-api-1.3.jar
constituent[48]:
file:/opt/local/share/java/maven4/lib/org.eclipse.sisu.plexus-0.9.0.M3.jar
constituent[49]: file:/opt/local/share/java/maven4/lib/aopalliance-1.0.jar
constituent[50]: file:/opt/local/share/java/maven4/lib/gson-2.11.0.jar
constituent[51]: file:/opt/local/share/java/maven4/lib/commons-codec-1.17.1.jar
constituent[52]:
file:/opt/local/share/java/maven4/lib/javax.annotation-api-1.3.2.jar
constituent[53]: file:/opt/local/share/java/maven4/lib/jline-style-3.28.0.jar
constituent[54]:
file:/opt/local/share/java/maven4/lib/plexus-interpolation-1.27.jar
constituent[55]:
file:/opt/local/share/java/maven4/lib/jakarta.inject-api-2.0.1.jar
constituent[56]: file:/opt/local/share/java/maven4/lib/asm-9.7.1.jar
constituent[57]: file:/opt/local/share/java/maven4/lib/woodstox-core-7.1.0.jar
constituent[58]: file:/opt/local/share/java/maven4/lib/wagon-http-3.5.3.jar
constituent[59]: file:/opt/local/share/java/maven4/lib/plexus-xml-4.0.4.jar
constituent[60]: file:/opt/local/share/java/maven4/lib/jline-builtins-3.28.0.jar
constituent[61]: file:/opt/local/share/java/maven4/lib/jansi-core-3.28.0.jar
constituent[62]: file:/opt/local/share/java/maven4/lib/failureaccess-1.0.2.jar
constituent[63]: file:/opt/local/share/java/maven4/lib/guice-6.0.0-classes.jar
constituent[64]: file:/opt/local/share/java/maven4/lib/stax2-api-4.2.2.jar
constituent[65]: file:/opt/local/share/java/maven4/lib/wagon-file-3.5.3.jar
constituent[66]:
file:/opt/local/share/java/maven4/lib/wagon-http-shared-3.5.3.jar
constituent[67]: file:/opt/local/share/java/maven4/lib/slf4j-api-2.0.16.jar
constituent[68]:
file:/opt/local/share/java/maven4/lib/jline-terminal-jni-3.28.0.jar
constituent[69]: file:/opt/local/share/java/maven4/lib/jline-terminal-3.28.0.jar
constituent[70]:
file:/opt/local/share/java/maven4/lib/jline-terminal-ffm-3.28.0.jar
constituent[71]: file:/opt/local/share/java/maven4/lib/jcl-over-slf4j-2.0.16.jar
constituent[72]: file:/opt/local/share/java/maven4/lib/commons-cli-1.9.0.jar
constituent[73]: file:/opt/local/share/java/maven4/lib/jline-reader-3.28.0.jar
constituent[74]:
file:/opt/local/share/java/maven4/lib/wagon-provider-api-3.5.3.jar
constituent[75]: file:/opt/local/share/java/maven4/lib/plexus-utils-4.0.1.jar
constituent[76]: file:/opt/local/share/java/maven4/lib/guava-33.3.1-jre.jar
constituent[77]:
file:/opt/local/share/java/maven4/lib/plexus-sec-dispatcher-4.0.3.jar
constituent[78]: file:/opt/local/share/java/maven4/lib/javax.inject-1.jar
constituent[79]: file:/opt/local/share/java/maven4/lib/httpclient-4.5.14.jar
constituent[80]:
file:/opt/local/share/java/maven4/lib/org.eclipse.sisu.inject-0.9.0.M3-no_asm.jar
---------------------------------------------------
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field:
HourOfDay
at java.base/java.time.Instant.getLong(Instant.java:603)
at
java.base/java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:308)
at
java.base/java.time.format.DateTimeFormatterBuilder$NumberPrinterParser.format(DateTimeFormatterBuilder.java:2914)
at
java.base/java.time.format.DateTimeFormatterBuilder$CompositePrinterParser.format(DateTimeFormatterBuilder.java:2529)
at
java.base/java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1905)
at
java.base/java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1879)
at
org.apache.maven.slf4j.MavenBaseLogger.getFormattedDate(MavenBaseLogger.java:275)
at
org.apache.maven.slf4j.MavenBaseLogger.innerHandleNormalizedLoggingCall(MavenBaseLogger.java:386)
at
org.apache.maven.slf4j.MavenBaseLogger.handleNormalizedLoggingCall(MavenBaseLogger.java:375)
at
org.slf4j.helpers.AbstractLogger.handleArgArrayCall(AbstractLogger.java:401)
at org.slf4j.helpers.AbstractLogger.error(AbstractLogger.java:341)
at
org.apache.maven.slf4j.MavenFailOnSeverityLogger.error(MavenFailOnSeverityLogger.java:118)
at
org.slf4j.spi.DefaultLoggingEventBuilder.logViaPublicSLF4JLoggerAPI(DefaultLoggingEventBuilder.java:213)
at
org.slf4j.spi.DefaultLoggingEventBuilder.log(DefaultLoggingEventBuilder.java:167)
at
org.slf4j.spi.DefaultLoggingEventBuilder.log(DefaultLoggingEventBuilder.java:122)
at
org.apache.maven.cling.invoker.LookupInvoker.lambda$container$11(LookupInvoker.java:417)
at org.apache.maven.api.cli.Logger.error(Logger.java:137)
at
org.apache.maven.cling.invoker.LookupInvoker.handleException(LookupInvoker.java:151)
at
org.apache.maven.cling.invoker.LookupInvoker.invoke(LookupInvoker.java:120)
at org.apache.maven.cling.ClingSupport.run(ClingSupport.java:64)
at org.apache.maven.cling.MavenCling.main(MavenCling.java:51)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
----
Is this expected or should I create a ticket for this? Is there another way to
configure a custom date time format? If I use
-Dorg.slf4j.simpleLogger.showDateTime=true and don’t set
‘org.slf4j.simpleLogger.dateTimeFormat’ then the build works, but then each log
line is only prefixed with the number of milliseconds since Maven started, and
I’d prefer an absolute timestamp.
Nils.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]