Commit d0ae82c
committed
build(log4j2): Pin compilation to JDK 8 via Maven Toolchains
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.1 parent 8adb3d7 commit d0ae82c
1 file changed
Lines changed: 26 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
65 | 91 | | |
66 | 92 | | |
67 | 93 | | |
| |||
0 commit comments