Commit Graph

475 Commits

Author SHA1 Message Date
Andy Wilkinson
37cc6b6a70 Merge branch '3.0.x'
Closes gh-35444
2023-05-16 09:27:30 +01:00
Andy Wilkinson
c39a37cd23 Exclude developmentOnly dependences from AOT processing classpaths
Fixes gh-35433
2023-05-16 09:26:20 +01:00
Phillip Webb
e3ed87d165 Merge branch '3.0.x' 2023-05-12 13:21:52 -07:00
Phillip Webb
92e420a098 Merge branch '2.7.x' into 3.0.x 2023-05-12 13:14:12 -07:00
Johnny Lim
ff9fd1abeb Polish
See gh-35185
2023-05-10 08:31:36 +02:00
Andy Wilkinson
07a11045d9 Merge branch '3.0.x'
Closes gh-35328
2023-05-05 17:35:50 +01:00
Andy Wilkinson
fd864c35aa Improve mapping of resolved artifacts to dependency coordinates
Closes gh-31216
2023-05-05 17:32:59 +01:00
Andy Wilkinson
19d7973776 Add bootTestRun to run app using test source set output and classpath
Closes gh-35248
2023-05-04 15:27:10 +01:00
Scott Frederick
23ae91b008 Add native image manifest entry
A manifest entry `Spring-Boot-Native-Processed: true` is added to the
jar manifest by the Maven or Gradle plugin when the jar has been built
for use in a native image. With the Gradle plugin, this is done in
reaction to the GraalVM Native Image Plugin being applied to the
project. With the Maven plugin, this is done when the `native` profile
is applied to the build.
2023-05-02 15:11:49 -05:00
Stephane Nicoll
16563a6a0a Upgrade to Native Build Tools Plugin 0.9.21
Closes gh-35055
2023-04-18 13:45:53 +02:00
Andy Wilkinson
d6bbbb8bac Merge branch '3.0.x'
Closes gh-35036
2023-04-17 17:49:55 +01:00
Andy Wilkinson
284e4d6f6d Merge branch '2.7.x' into 3.0.x
Closes gh-35035
2023-04-17 17:46:33 +01:00
Andy Wilkinson
751fc9fe54 Fix includeProjectDependencies with Kotlin DSL 2023-04-17 17:35:15 +01:00
Andy Wilkinson
d5756db54c Stop using Native Build Tools "requiredVersion" configuration option
Closes gh-34840
2023-04-14 11:55:20 +01:00
Scott Frederick
56bc6d2fa0 Allow image application directory to be configurable
An `applicationDirectory` option on the Maven
`spring-boot:build-image` goal and the Gradle `bootBuildImage` task
can be configured to set the location that will be used to upload
application contents to the builder image, and will contain the
application contents in the generated image.

Closes gh-34786
2023-04-07 14:00:00 -05:00
Scott Frederick
5817c8441d Allow image Created date to be configurable
A `createdDate` option on the Maven `spring-boot:build-image` goal
and the Gradle `bootBuildImage` task can be used to set the `Created`
metadata field on a generated OCI image to a specified date or to
the current date.

Closes gh-28798
2023-04-06 15:08:34 -05:00
Phillip Webb
956b9e06c9 Merge branch '2.7.x' into 3.0.x
Closes gh-34452
2023-03-02 12:08:52 -08:00
Phillip Webb
69d34c96bf Apply consistent timestamps to files added to a fat archive
Update logic in `BootZipCopyAction` to align with the recent changes
made in the Maven plugin (commit 998d59b7). Timestamps are now
specified in UTC and offset against the default timezone before being
written.

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.

Closes gh-21005
2023-03-02 12:06:42 -08:00
Phillip Webb
c4de86c244 Merge branch '2.7.x' into 3.0.x 2023-02-21 23:17:57 -08:00
Phillip Webb
df5898a146 Reformat code following spring-javaformat upgrade 2023-02-21 22:53:27 -08:00
Johnny Lim
d368115128 Fix name for Implementation-Title in Spring Boot Gradle plugin
See gh-34177
2023-02-14 19:47:43 +00:00
Andy Wilkinson
9378fc47a7 Set implementation name and version in Gradle-built archives
Closes gh-34059
2023-02-08 10:59:55 +00:00
Krzysztof Krason
d3efd7e091 Use try with close
See gh-33987
2023-01-26 20:36:38 -08:00
Moritz Halbritter
c6536c54d8 Write native-image argfile only if there are excludes
Refactors duplicate logic in BootZipCopyAction and Packager into
separate classes.

Closes gh-33363

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2022-11-30 14:29:35 +01:00
Andy Wilkinson
fe8644cc59 Fail more elegantly when GraalVM version is too old
Closes gh-32924
2022-11-04 13:05:22 +00:00
Andy Wilkinson
2d5a3eac51 Include AOT-generated classes in native test binary
Closes gh-32940
2022-11-04 11:53:33 +00:00
Andy Wilkinson
a3870f8da7 Merge branch '2.6.x' into 2.7.x
Closes gh-32987
2022-11-03 10:23:30 +00:00
Andy Wilkinson
beb62be843 Test Boot's Gradle plugin against Gradle 7.6-rc-1
Closes gh-32933
2022-11-03 10:22:14 +00:00
Andy Wilkinson
519250cacf Polish Gradle tasks for AOT processing
Closes gh-32946
2022-11-01 16:42:26 +00:00
Andy Wilkinson
b192c29edb Use AOT's outputs to configure source set's inputs
Closes gh-32919
2022-11-01 10:33:17 +00:00
Andy Wilkinson
0103e24bbb Stop configuring AOT-generated classes as output of AOT source set
Closes gh-32940
2022-11-01 10:32:37 +00:00
Andy Wilkinson
2bb9b2640e Separate classpath of AOT tasks from source sets they populate
Closes gh-32930
2022-11-01 10:06:33 +00:00
Johnny Lim
5067aab552 Polish
See gh-32840
2022-10-27 16:33:14 +02:00
Phillip Webb
a59b6cb1f3 Polish 2022-10-25 21:56:53 -07:00
Phillip Webb
4be3218cb6 Merge branch '2.7.x' 2022-10-25 15:48:26 -07:00
Scott Frederick
c22e76632c Add Build-Jdk-Spec to jar and war manifest when building with Gradle
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
2022-10-25 15:48:05 -05:00
Andy Wilkinson
9e6259cd37 Remove development-only dependencies from native image classpath
Fixes gh-32843
2022-10-24 09:22:13 +01:00
Scott Frederick
b78b22b6f6 Allow Gradle task property to be set with String or enum value
See gh-32769
2022-10-20 13:59:54 -05:00
Andy Wilkinson
26e747d2db Fix package tangle in spring-boot-gradle-plugin
Closes gh-32814
2022-10-20 13:12:12 +01:00
Scott Frederick
8acf9afccb Use String instead of enum for Gradle task Property
See gh-32769
2022-10-19 17:23:23 -05:00
Andy Wilkinson
8621be6bba Make consistent use of Property for Gradle task configuration
Closes gh-32769
2022-10-19 19:08:45 +01:00
Andy Wilkinson
2dacddb4d7 Make bootBuildImage produce native image when NBT plugin is applied
Closes gh-32768
2022-10-18 13:12:45 +01:00
Andy Wilkinson
2c756ea874 Use collectReachabilityMetadata task to add metadata to bootJar
Closes gh-32737
2022-10-18 11:25:34 +01:00
Phillip Webb
c16c6bc3b5 Fix reachability argfile format
Update the argfile to a format that actually works when
passed to the `native-image` command.

See gh-32738
2022-10-17 18:59:50 -07:00
Phillip Webb
8358a0e3f3 Fix reachability-metadata.properties location
Update tools to use the correct `reachability-metadata.properties`
location which should include the version number.

See gh-32738
2022-10-17 14:31:38 -07:00
Phillip Webb
071649360b Generate 'META-INF/native-image/argfile' file for buildpack use
Update the Maven and Gradle plugin to generate an `argfile` file
file under `META-INF/native-image` that contains `--exclude-config`
arguments that should be passed when generating a native image.

The contents of the file is generated for each nested jar that has a
`reachability-metadata.properties` file containing 'override=true'.

The `reachability-metadata.properties` file is expected to be generated
by the Graal native build tools plugin.

Closes gh-32738
2022-10-14 15:23:06 -07:00
Andy Wilkinson
3ca5c7ff5b Create AOT source sets as soon as the Java plugin is applied
Previously, the AOT source sets were not created until both the
Java and Spring Boot plugins had been applied. This could create
ordering problems when the Spring Boot plugin's native image plugin
action tried to access the AOT source sets to configure the
classpaths of the nativeCompile and nativeTest tasks. If the
plugins were applied in a particular order the AOT source sets
would not exist and a failure would occur.

This commit updates the Spring Boot AOT plugin to create the source
sets as soon as the Java plugin has been applied. This ensure that
they're in place when reacting to the native image plugin being
applied.

Closes gh-32661
2022-10-11 19:58:03 +01:00
Andy Wilkinson
808e0be552 Merge branch '2.7.x'
Closes gh-32679
2022-10-11 19:16:08 +01:00
Andy Wilkinson
1b604e30f7 Merge branch '2.6.x' into 2.7.x
Closes gh-32678
2022-10-11 19:15:33 +01:00
Andy Wilkinson
215eb96355 Improve error handling in SpringBootPlugin
Closes gh-32677
2022-10-11 19:15:23 +01:00