Update `JarWriter` so that entry times are set with the default TimeZone
offset removed. The Javadoc for `ZipEntry.setTime` states:
The file entry is "encoded in standard `MS-DOS date and time format`.
The default TimeZone is used to convert the epoch time to the MS-DOS
data and time.
Removing the offset from our UTC time before calling `entry.setTime()`
ensures that we get consistent bytes in the zip file when the output
stream reapplies the offset during write.
Fixes gh-34424
This commit adds a new "build-image-no-fork" goal that behaves exactly
as "build-image", except it does not fork the lifecycle. This is a
common pattern in maven plugins where a goal can be invoked on the
command-line and conveniently make sure that a certain phase has run
prior to its execution.
The new goal is suitable for binding the goal in a phase, typically
package, and rely on it rather than invoking the goal. This makes sure
that the lifecycle is forked, which would run everything again.
Closes gh-26455
This commit adds a `compilerArguments` parameter to the Maven plugin
`process-aot` and `process-test-aot` goals to allow the user to
configure the command used to compile the AOT-generated sources.
Fixes gh-33012
This commit adds a `Build-Jdk-Spec` attribute to the manifest in a
jar or war file built with the Spring Boot Gradle plugin. This
aligns the Gradle plugin's behavior with the default Maven plugin
behavior.
This removes the need to set a `BP_JVM_VERSION` environment variable
when invoking Cloud Native Buildpacks, as the Paketo buildpacks will
honor `Build-Jdk-Spec` in a jar or war manifest to determine the
default JVM version.
Fixes gh-32829
This commit makes sure that application arguments can be provided when
optimizing an application at build-time. It uses the same mechanism of
the regular run goal, merging the profile property if set.
Closes gh-32579
This commit removes the requirement that `docker.publishRegistry`
configuration must be provided when an image is published by the Gradle
or Maven plugin.
Fixes gh-28844
This commit adds an `aot-generate` goal to the Maven Plugin that
triggers AOT generation on the application. The new goal shares a
number of properties with the existing `run` goal and uses the same
algorithm to detect the main class to use.
Closes gh-30525