Commit Graph

1025 Commits (7bb337aeb173c9c6c304d48648a35d51d39a51fd)

Author SHA1 Message Date
Phillip Webb 3e9a136143 Polish gradle formatting 2 years ago
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
2 years ago
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
2 years ago
Stephane Nicoll 5c1c0a2b2e Upgrade to Kotlin 1.8.20
Closes gh-34879
2 years ago
Scott Frederick 17755e5376 Merge branch '2.7.x' into 3.0.x
Closes gh-34475
2 years ago
Scott Frederick 10d71f5645 Document how to get socket location for podman configuration
Closes gh-34435
2 years ago
Andy Wilkinson 6a95f44f67 Merge branch '2.7.x' into 3.0.x
Closes gh-34462
2 years ago
Andy Wilkinson 68a1dd3a76 Document support for Gradle 8
Closes gh-34458
2 years ago
Andy Wilkinson 03dd666818 Merge branch '2.7.x' into 3.0.x
Closes gh-34460
2 years ago
Andy Wilkinson 4f7e038f14 Test Gradle plugin against Gradle 8.0.1
Closes gh-34457
2 years ago
Phillip Webb 956b9e06c9 Merge branch '2.7.x' into 3.0.x
Closes gh-34452
2 years ago
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
2 years ago
Andy Wilkinson 814b77c33f Merge branch '2.7.x' into 3.0.x
Closes gh-34391
2 years ago
Andy Wilkinson 81882ecca4 Apply plugins consistently in Gradle documentation examples
Closes gh-34038
2 years ago
Phillip Webb c4de86c244 Merge branch '2.7.x' into 3.0.x 2 years ago
Phillip Webb df5898a146 Reformat code following spring-javaformat upgrade 2 years ago
Johnny Lim d368115128 Fix name for Implementation-Title in Spring Boot Gradle plugin
See gh-34177
2 years ago
Scott Frederick cbac3c81d6 Merge branch '2.7.x' into 3.0.x
Closes gh-34161
2 years ago
Scott Frederick 33aef7fe27 Update CLI installation docs to download releases from Maven Central
Closes gh-33962
2 years ago
Andy Wilkinson 9378fc47a7 Set implementation name and version in Gradle-built archives
Closes gh-34059
2 years ago
Johnny Lim bc7fc90550 Replace Base64Utils with JDK's Base64
See gh-33967
2 years ago
Krzysztof Krason d3efd7e091 Use try with close
See gh-33987
2 years ago
Moritz Halbritter 94f4a4396c Merge branch '2.7.x'
Closes gh-33880
2 years ago
Moritz Halbritter e8d809fe65 Replace 'via' with 'over' or 'through' in the documentation
Closes gh-33878
2 years ago
Phillip Webb a2ac38e203 Update copyright year of changed files 2 years ago
Krzysztof Krason cf6493f65c Simplify AssertJ assertions and also make them more readable
See gh-33653
2 years ago
Phillip Webb f588793445 Update copyright year of changed files 2 years ago
Phillip Webb e57824fb58 Merge branch '2.7.x'
Closes gh-33617
2 years ago
Phillip Webb a2a59dd627 Polish 'Improve gradle plugin tags documentation'
See gh-33614
2 years ago
Shekhar Aggarwal a1df607dd8 Improve gradle plugin tags documentation
See gh-33614
2 years ago
Moritz Halbritter f36e2ecb7b Use AutoClosables with try-with-resources
Closes gh-33538
2 years ago
Moritz Halbritter 725337f976 Make fields final
Closes gh-33537
2 years ago
Craig Andrews 703935612f Update instead of replace environment in bootBuildImage documentation
Closes gh-32886
See gh-33424
2 years ago
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>
2 years ago
Andy Wilkinson d88f968d22 Merge branch '2.7.x'
Closes gh-33403
2 years ago
Moritz Halbritter 9206b6cda1 Add warning to not disable jar task when building native images
Closes gh-33238
2 years ago
Johnny Lim 6027508cf7 Polish
See gh-33108
2 years ago
Andy Wilkinson 6940e348a7 Try to fix NativeImagePluginActionIntegrationTests on Windows 2 years ago
Andy Wilkinson 443d80ce6e Polish
See gh-32924
2 years ago
Andy Wilkinson fe8644cc59 Fail more elegantly when GraalVM version is too old
Closes gh-32924
2 years ago
Andy Wilkinson 2d5a3eac51 Include AOT-generated classes in native test binary
Closes gh-32940
2 years ago
Scott Frederick 67af4c0a65 Polish documentation 2 years ago
Andy Wilkinson a3870f8da7 Merge branch '2.6.x' into 2.7.x
Closes gh-32987
2 years ago
Andy Wilkinson beb62be843 Test Boot's Gradle plugin against Gradle 7.6-rc-1
Closes gh-32933
2 years ago
Andy Wilkinson 519250cacf Polish Gradle tasks for AOT processing
Closes gh-32946
2 years ago
Andy Wilkinson b192c29edb Use AOT's outputs to configure source set's inputs
Closes gh-32919
2 years ago
Andy Wilkinson 0103e24bbb Stop configuring AOT-generated classes as output of AOT source set
Closes gh-32940
2 years ago
Andy Wilkinson 2bb9b2640e Separate classpath of AOT tasks from source sets they populate
Closes gh-32930
2 years ago
Johnny Lim 5067aab552 Polish
See gh-32840
2 years ago
Phillip Webb a59b6cb1f3 Polish 2 years ago
Phillip Webb 4be3218cb6 Merge branch '2.7.x' 2 years ago
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
2 years ago
Andy Wilkinson 9e6259cd37 Remove development-only dependencies from native image classpath
Fixes gh-32843
2 years ago
Scott Frederick b78b22b6f6 Allow Gradle task property to be set with String or enum value
See gh-32769
2 years ago
Andy Wilkinson 26e747d2db Fix package tangle in spring-boot-gradle-plugin
Closes gh-32814
2 years ago
Scott Frederick 8acf9afccb Use String instead of enum for Gradle task Property
See gh-32769
2 years ago
Andy Wilkinson 8621be6bba Make consistent use of Property for Gradle task configuration
Closes gh-32769
2 years ago
Andy Wilkinson 2dacddb4d7 Make bootBuildImage produce native image when NBT plugin is applied
Closes gh-32768
2 years ago
Andy Wilkinson 2c756ea874 Use collectReachabilityMetadata task to add metadata to bootJar
Closes gh-32737
2 years ago
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
2 years ago
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
2 years ago
Andy Wilkinson 3082b0c5bf Add a section on AOT to the Gradle plugin's docs
Closes gh-32750
2 years ago
Andy Wilkinson ff16f6d6c6 Work around configuration cache problem in NBT Gradle Plugin
See gh-32752
See graalvm/native-build-tools#338
2 years ago
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
2 years ago
Phillip Webb 430c6b7e9f Downgrade to SLF4J 1.7 for spring-boot-gradle-plugin tests
The downgrade is required for tests to run in Eclipse.

Closes gh-32626
2 years ago
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
2 years ago
Andy Wilkinson 808e0be552 Merge branch '2.7.x'
Closes gh-32679
2 years ago
Andy Wilkinson 1b604e30f7 Merge branch '2.6.x' into 2.7.x
Closes gh-32678
2 years ago
Andy Wilkinson 215eb96355 Improve error handling in SpringBootPlugin
Closes gh-32677
2 years ago
Andy Wilkinson d351086a06 Adapt to breaking changes to AOT processing entry points
See gh-32550
2 years ago
Phillip Webb e0b67889a8 Use Stream.toList instead of Stream.collect when possible
Update code to make use of `Stream.toList()` whenever possible.

Closes gh-28177
2 years ago
Stephane Nicoll e2dd0ef9a4 Adapt AotProcessor to changes in Spring Framework
Closes gh-32560
2 years ago
Andy Wilkinson 0f44e69995 Merge branch '2.7.x'
Closes gh-32500
2 years ago
Andy Wilkinson 5124ae94ae Merge branch '2.6.x' into 2.7.x
Closes gh-32499
2 years ago
Andy Wilkinson cfac7f55a4 Correct annotations on BootBuildImage's file-based inputs
Closes gh-32495
2 years ago
Andy Wilkinson 7c7c34cda1 Fix classpath roots of AOT test processing
This was regressed in 6175c4210d so that
each class on the classpath was passed in as a "root". This commit
corrects this so that only the roots are passed to the AOT test
processor.

See gh-32424
2 years ago
Andy Wilkinson 4a80b36160 Configure native image classpath outside of task realisation
Closes gh-32465
2 years ago
Andy Wilkinson 6175c4210d Fix skipping of processAot when there is no main source
See gh-32424
2 years ago
Andy Wilkinson fa81e8ca79 Skip processAot and processTestAot if there is no main or test code
Closes gh-32424
2 years ago
Andy Wilkinson e8aa5680d6 Support file-based reachability metadata repositories
See gh-32408
2 years ago
Andy Wilkinson 8323f24ccc Make classes generated by AOT test processing available to nativeTest
Closes gh-32428
2 years ago
Scott Frederick 1ed4d89466 Copy native reachability metadata to jar file in Gradle plugin
When the Spring Boot Gradle plugin builds a fat jar and the Native
Build Tools Gradle plugin is applied to the build, any configuration
files from the GraalVM reachability metadata repository that match
project dependencies are copied to a `META-INF/native-image`
directory in the fat jar.

Closes gh-32408
2 years ago
Andy Wilkinson 2b503ee334 Add AOT-generated classes as a dependency
Previously, the AOT-generated classes were added directly to the
compile classpath of the AOT compilation task. This didn't work
perfectly in IntelliJ IDEA, leaving the generated classes in the
runtime scope and causing compilation problems where the
AOT-generated source tried to reference those classes.

This commit updates the plugin to add the AOT-generated classes as
a dependency to the AOT source set's implementation configuration.
This makes the classes available during compilation by the source
set's Java compilation task while also makeing IntelliJ IDEA aware
of their presence on the compile classpath.

Closes gh-32395
2 years ago
Andy Wilkinson 867c49337a Add AOT-generated classes to classpath of AOT JavaCompile tasks
See gh-32304
2 years ago
Andy Wilkinson aafceb3868 Merge branch '2.7.x'
Closes gh-32285
2 years ago
Andy Wilkinson f17df7bf30 Merge branch '2.6.x' into 2.7.x
Closes gh-32284
2 years ago
Andy Wilkinson 23c2f73b3f Update tests to allow them to run on Java 19
Closes gh-32280
2 years ago
Andy Wilkinson 144fdaa703 Merge branch '2.6.x' into 2.7.x
Closes gh-32283
2 years ago
Andy Wilkinson 78f4242e46 Build with Gradle 7.5 while still supporting Gradle 6.8+
Closes gh-32281
2 years ago
Andy Wilkinson 3dfe28c9f1 Ensure that a test engine is available to AOT test processing
See gh-32192
2 years ago
Andy Wilkinson cf84ae7ad8 Exclude non-existent test classes dirs from AOT test processing
See gh-32192
2 years ago
Andy Wilkinson fc979397be Polish SpringBootAotPlugin 2 years ago
Andy Wilkinson fd28f6d1d6 Add Gradle plugin support for processing test contexts ahead-of-time
Closes gh-32192
2 years ago
Phillip Webb c0b3d36205 Rename 'generateAotSources' task to processAot'
See gh-31918
2 years ago
Andy Wilkinson a8ae7a1e44 Fix Gradle AOT integration test on Windows
See gh-31970
2 years ago
Stephane Nicoll 332419e3a7 Remove extra 'build' directory
See gh-32069
2 years ago
Stephane Nicoll e21041ce65 Harmonize location of generated classes processed Ahead-of-time
Closes gh-32069
2 years ago
Andy Wilkinson cb18eb095b Make transitive runtime dependencies available to AOT processing
Closes gh-31970
2 years ago
Phillip Webb e08c16dfd6 Polish 2 years ago
Andy Wilkinson 6c28156b29 Avoid config-time creation of AOT source set's tasks
Closes gh-31844
2 years ago