Commit 0abf6d7
build(log4j2): Pin compilation to JDK 8 via Maven Toolchains (#616)
Release 1.6.3 was built on a JDK that does not run annotation processors
by default, which silently dropped the Log4j2 plugin descriptor
(META-INF/.../Log4j2Plugins.dat) for LambdaAppender, LambdaTextFormat,
and LambdaJsonFormat. The published artifact was broken at runtime:
log4j could not resolve <Lambda>, <LambdaTextFormat>, or
<LambdaJsonFormat> elements in user log4j2.xml configurations.
Configure maven-toolchains-plugin to require a JDK 8 toolchain so javac
comes from a JDK that runs annotation processors by default, regardless
of which JVM Maven is invoked under. The version range [1.8,9) matches
both "1.8" and "8".
The existing GitHub Actions workflow at
.github/workflows/aws-lambda-java-log4j2.yml uses actions/setup-java@v5
with java-version: 8 and distribution: corretto. setup-java@v5
auto-generates a ~/.m2/toolchains.xml entry with <version>8</version>,
which the [1.8,9) range matches, so no workflow changes are required.
When no matching JDK 8 toolchain is available, the build now fails fast
at the validate phase with a clear "Cannot find matching toolchain
definitions" error instead of silently producing an artifact missing its
plugin descriptor.
Co-authored-by: Davide Melfi <darklight3it@gmail.com>1 parent 2714c2c commit 0abf6d7
1 file changed
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
82 | 102 | | |
83 | 103 | | |
84 | 104 | | |
| |||
0 commit comments