Commit Graph

1011 Commits (3c482a024c7f95f0cf6f76097529707d3355dde2)

Author SHA1 Message Date
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
Scott Frederick 6f65777035 Merge branch '2.7.x'
Closes gh-31827
2 years ago
Scott Frederick 9da38c8d2d Merge branch '2.6.x' into 2.7.x
Closes gh-31826
2 years ago
Scott Frederick 4e0b3aad9f Clarify how docker image publishing registry is determined
Closes gh-31820
2 years ago
Scott Frederick cf7a163c6d Merge branch '2.7.x' 2 years ago
Scott Frederick f9cf31e59e Fix compile errors
See gh-28844
2 years ago
Scott Frederick 36d6106bb0 Merge branch '2.7.x'
Closes gh-31825
2 years ago
Scott Frederick 09c7ce6dab Merge branch '2.6.x' into 2.7.x
Closes gh-31824
2 years ago
Scott Frederick 9b0cdac58a Simplify support for pushing images to unauthenticated registries
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
2 years ago
Andy Wilkinson 6da8c88b2b Include library resources on classpath of AOT source generation
Closes gh-31803
2 years ago
Andy Wilkinson 7bd9873cd9 Raise the minimum supported version of Gradle to 7.5
Closes gh-31215
2 years ago
Moritz Halbritter 3703b317ce Enable GraalVM reachability metadata repository
Closes gh-31687
2 years ago
dreis2211 5db04da275 Use pattern matching for instanceof where appropriate
See gh-31475
2 years ago
dreis2211 fb45fc4819 Use Files.writeString() and Files.readString() where possible
See gh-31459
2 years ago
dreis2211 a639685053 Remove obsolete Java compatibility code
See gh-31452
2 years ago
Johnny Lim 5d7d0d8047 Use 3.0.0 for Javadoc since tags
See gh-31448
2 years ago
Stephane Nicoll 99f71941cd Merge branch '2.7.x'
Closes gh-31363
2 years ago
Stephane Nicoll 499f54a335 Merge branch '2.6.x' into 2.7.x
Closes gh-31362
2 years ago
Lars Grefer 8c9557f552 Enable Links for the Javadoc of the Gradle Plugins
See gh-31279
2 years ago
Andy Wilkinson 1ba1eff63a Merge branch '2.7.x' 3 years ago
Andy Wilkinson 430040415b Merge branch '2.6.x' into 2.7.x 3 years ago
Andy Wilkinson 0b6c147a87 Polish 3 years ago
Andy Wilkinson 12465ea6b7 Merge branch '2.7.x'
Closes gh-31214
3 years ago
Andy Wilkinson d1420b6abb Merge branch '2.6.x' into 2.7.x
Closes gh-31213
3 years ago
Andy Wilkinson da8dafe138 Make afterResolve hook used by bootJar and bootWar more robust
Previously, ResolvedDependencies used hasError on
ResolvedConfiguration to check that it was safe to work with all
of the resolved configuration's artifacts and their files. This
check is not sufficient as errors can still occur later on.

This commit updates ResolvedDependencies to use a lenient
configuration, thereby avoiding any problems that may be caused by
errors that occur after the hasError check.

Closes gh-30586
3 years ago
Andy Wilkinson 4bb5ba2bd0 Merge branch '2.7.x' 3 years ago
Andy Wilkinson 5dfa5adb75 Merge branch '2.7.x'
Closes gh-31178
3 years ago
Andy Wilkinson 455ee0ce22 Merge branch '2.6.x' into 2.7.x
Closes gh-31177
3 years ago
Andy Wilkinson ee45fd2fc8 Remove redundant throws declarations from internal APIs
Closes gh-31176
3 years ago
Andy Wilkinson b3a4982f31 Merge branch '2.6.x' into 2.7.x
Closes gh-31174
3 years ago
Andy Wilkinson cbf42dea14 Update deprecation messages to change removal version from 2.8 to 3.0
Closes gh-30903
3 years ago
Andy Wilkinson 003f747e77 Merge branch '2.7.x'
Closes gh-31170
3 years ago
Phillip Webb ea41e89c6c Merge branch '2.5.x' into 2.6.x 3 years ago
Phillip Webb 7d2f1bafc0 Update copyright year of changed files 3 years ago
Phillip Webb 06f8041e4d Merge branch '2.7.x' 3 years ago
Phillip Webb d5d5997be7 Merge branch '2.6.x' into 2.7.x 3 years ago
Phillip Webb 99f5c781a5 Merge branch '2.5.x' into 2.6.x 3 years ago
Phillip Webb 350d27fe50 Polish code to use method references when possible 3 years ago
Andy Wilkinson 293a3c9ec1 Fix arguments passed to AOT processing in Gradle plugin
See gh-30527
3 years ago
Phillip Webb 8cf63a28b8 Update AOT work to latest Framework code 3 years ago
Andy Wilkinson 541ab69aff Merge branch '2.7.x' 3 years ago
Andy Wilkinson 4cd850cfc0 Merge branch '2.6.x' into 2.7.x
Closes gh-30851
3 years ago
Andy Wilkinson fa327a783d Merge branch '2.5.x' into 2.6.x
Closes gh-30850
3 years ago
Andy Wilkinson 4fd2e0c916 Polish "Fix typos"
See gh-30773
3 years ago
Andy Wilkinson f6d24dc1a8 Fix typos
See gh-30773
3 years ago
Andy Wilkinson fcf45d5c22 Add support for invoking AOT to the Gradle plugin
Closes gh-30527
3 years ago
Andy Wilkinson eacd8c04a5 Merge branch '2.7.x' 3 years ago
Andy Wilkinson 56690a7eb9 Merge branch '2.6.x' into 2.7.x
Closes gh-30791
3 years ago
Andy Wilkinson 409ec48e2a Merge branch '2.5.x' into 2.6.x
Closes gh-30790
3 years ago
Andy Wilkinson 193ef9a06d Package META-INF/services/ files beneath BOOT-INF/classes/
Closes gh-30413
3 years ago
Stephane Nicoll a4cccc98c6 Merge branch '2.7.x' 3 years ago
izeye ed412af138 Polish
See gh-30695
3 years ago
Andy Wilkinson 7e97073994 Merge branch '2.7.x' 3 years ago
Andy Wilkinson 74494f1d37 Merge branch '2.6.x' into 2.7.x
Closes gh-30671
3 years ago
Andy Wilkinson 1720290234 Merge branch '2.5.x' into 2.6.x
Closes gh-30670
3 years ago
Andy Wilkinson f7d181e65b Handle null additional properties more gracefully
Closes gh-30654
3 years ago
izeye 40d0e38e76 Test Spring Boot Gradle Plugin against Gradle 7.4.2
See gh-30506
3 years ago
Andy Wilkinson 42ae55895d Simplify resolution of the application's main class name
Closes gh-30467
3 years ago
Andy Wilkinson d9c2e7c85a Merge branch '2.7.x' 3 years ago
Andy Wilkinson 4722d9d17e Merge branch '2.6.x' into 2.7.x
Closes gh-30470
3 years ago
Andy Wilkinson 880d33f391 Merge branch '2.5.x' into 2.6.x
Closes gh-30469
3 years ago
Andy Wilkinson 05b7befc7a Fix javadoc of ResolveMainClassName setClasspath(Object)
Closes gh-30468
3 years ago
Andy Wilkinson 98678ed415 Merge branch '2.7.x' 3 years ago
Andy Wilkinson b4cbcd797e Merge branch '2.6.x' into 2.7.x
Closes gh-30218
3 years ago
Andy Wilkinson c4d2602a3e Merge branch '2.5.x' into 2.6.x
Closes gh-30217
3 years ago
Octavia Togami 264a6888a9 Refactor code to avoid using internal LazyPublishArtifact
See gh-30209
3 years ago
Andy Wilkinson 9bf77b1a06 Merge branch '2.7.x' 3 years ago
Andy Wilkinson 4935c11a07 Merge branch '2.6.x' into 2.7.x
Closes gh-30215
3 years ago
Andy Wilkinson 464fce621d Merge branch '2.5.x' into 2.6.x
Closes gh-30213
3 years ago
Andy Wilkinson f11ddb4bd7 Prevent eager creation of bootWar task
Previously, querying the artifact's extension in
SinglePublishedArtifact would result in eager creation of the task
that creates the artifact. Typically, this is the bootWar task.

Instead of querying the extension, this commit reworks
SinglePublishedArtifact and its callers to call separate methods for
jar and war artifacts so that the extension check is no longer
required.

Tests have been added to ensure that running help does not trigger
any unexpected task creation. The tests' assertions tolerate some
variation in behavior that depend on the version of Gradle and
whether the configuration cache is enabled.

Closes gh-30211
3 years ago
Scott Frederick 377b13c048 Merge branch '2.7.x' 3 years ago
Scott Frederick de321b00b7 Support podman for building images
Closes gh-30196
3 years ago
Scott Frederick 5e07db7d21 Merge branch '2.7.x' 3 years ago
Scott Frederick 7ad538cd84 Add option to use configured Docker host in builder
This commit adds support for a `docker.bindHostToBuilder` option in
the Maven and Gradle image building goal and task.

Fixes gh-29384
3 years ago
Andy Wilkinson 5264fb3d1e Test our Gradle Plugin against Gradle 7.4.1
Closes gh-30139
3 years ago
Andy Wilkinson e9d2ec507e Merge branch '2.7.x' 3 years ago
Andy Wilkinson d552f49128 Merge branch '2.7.x' 3 years ago
Andy Wilkinson 83de1995c7 Merge branch '2.6.x' into 2.7.x
Closes gh-30130
3 years ago
Andy Wilkinson b0e4cabdd8 Merge branch '2.5.x' into 2.6.x
Closes gh-30123
3 years ago
Andy Wilkinson 20d21d4e58 Set up CI with JDK 18
Closes gh-30104
3 years ago
Madhura Bhave 5960d2dba1 Merge branch '2.7.x' into main 3 years ago
Madhura Bhave 9628507756 Merge branch '2.6.x' into 2.7.x
Closes gh-30094
3 years ago
Madhura Bhave d131003456 Merge branch '2.5.x' into 2.6.x
Closes gh-30093
3 years ago
Madhura Bhave 480ccc6175 Clarify devtools documentation when using with build plugins
Closes gh-17851
3 years ago
Andy Wilkinson e2d0b348e3 Merge branch '2.7.x' 3 years ago
Andy Wilkinson 4459fb46be Merge branch '2.6.x' into 2.7.x
Closes gh-30058
3 years ago
Andy Wilkinson 2ba8b490a0 Merge branch '2.5.x' into 2.6.x
Closes gh-30057
3 years ago
Andy Wilkinson e7566e968e Use configuration avoidance APIs in Gradle plugin's docs
Closes gh-30056
3 years ago
Andy Wilkinson a5ec85bede Merge branch '2.7.x' 3 years ago
Andy Wilkinson b89c29f29c Merge branch '2.6.x' into 2.7.x
Closes gh-30037
3 years ago
Andy Wilkinson ea729fc1c6 Merge branch '2.5.x' into 2.6.x
Closes gh-30036
3 years ago
Andy Wilkinson 4073cf8334 Only apply special handling of META-INF to jar files
The changes for gh-28562 attempted to align the Gradle plugin's
handling of META-INF with the Maven plugin's behavior. Unfortunately,
they want too far, applying the handling to both jar and war files
when the Maven plugin only applies it to jar files.

This commit reworks the changes so that they only apply to jar files.

Closes gh-30026
3 years ago
Andy Wilkinson 6051a10d4a Merge branch '2.7.x' 3 years ago
Andy Wilkinson 1ae46dee6d Merge branch '2.6.x' into 2.7.x
Closes gh-29967
3 years ago
Andy Wilkinson 4f8a18fa0a Merge branch '2.5.x' into 2.6.x
Closes gh-29966
3 years ago
Andy Wilkinson 9c9e04b8e4 Use mainClass rather than deprecated main in BootRun examples
Closes gh-29965
3 years ago
Phillip Webb ff4b92a3ba Update copyright year of changed files 3 years ago
Phillip Webb f4b849ec95 Merge branch '2.7.x' 3 years ago
Phillip Webb 26512f8ac6 Merge branch '2.6.x' into 2.7.x 3 years ago
Phillip Webb 5b4ec32645 Merge branch '2.5.x' into 2.6.x 3 years ago
Phillip Webb c86b1330cf Update copyright year of changed files 3 years ago
Phillip Webb 9ab1b669d0 Polish 3 years ago
Andy Wilkinson d62d5a09a1 Merge branch '2.7.x' 3 years ago
Andy Wilkinson ba73436ea8 Merge branch '2.6.x' into 2.7.x
Closes gh-29881
3 years ago
Andy Wilkinson 86c75b7a5c Merge branch '2.5.x' into 2.6.x
Closes gh-29880
3 years ago
Andy Wilkinson 03352b0a8c Prohibit use of APIs that prevent task configuration avoidance
Closes gh-29809
3 years ago
Andy Wilkinson d7fa2e2e8f Merge branch '2.7.x' 3 years ago
Andy Wilkinson 8e4484acea Merge branch '2.6.x' into 2.7.x
Closes gh-29878
3 years ago
Andy Wilkinson ce4beae12f Merge branch '2.5.x' into 2.6.x
Closes gh-29877
3 years ago
izeye 6bd6f590d3 Fix Javadoc since for ResolveMainClassName#setClasspath(Object)
See gh-29826
3 years ago
Andy Wilkinson 9808e80ab4 Merge branch '2.7.x' 3 years ago
Andy Wilkinson a513dbb797 Merge branch '2.6.x' into 2.7.x
Closes gh-29818
3 years ago
Andy Wilkinson f134358c78 Merge branch '2.5.x' into 2.6.x
Closes gh-29817
3 years ago
Andy Wilkinson c84b35c460 Polish "Avoid using Gradle APIs that trigger eager task creation"
See gh-29762
3 years ago
Lars Grefer 7cd87acd73 Avoid using Gradle APIs that trigger eager task creation
See gh-29762
3 years ago