Commit Graph

1113 Commits

Author SHA1 Message Date
Andy Wilkinson ff16f6d6c6 Work around configuration cache problem in NBT Gradle Plugin
See gh-32752
See graalvm/native-build-tools#338
2022-10-17 13:58:07 +01: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
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
2022-10-14 11:58:16 -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
Andy Wilkinson d351086a06 Adapt to breaking changes to AOT processing entry points
See gh-32550
2022-10-10 22:02:25 +01:00
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
2022-10-04 00:29:22 -07:00
Stephane Nicoll e2dd0ef9a4 Adapt AotProcessor to changes in Spring Framework
Closes gh-32560
2022-09-30 16:47:03 +02:00
Andy Wilkinson 0f44e69995 Merge branch '2.7.x'
Closes gh-32500
2022-09-26 13:15:39 +01:00
Andy Wilkinson 5124ae94ae Merge branch '2.6.x' into 2.7.x
Closes gh-32499
2022-09-26 13:15:11 +01:00
Andy Wilkinson cfac7f55a4 Correct annotations on BootBuildImage's file-based inputs
Closes gh-32495
2022-09-26 13:13:16 +01:00
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
2022-09-22 12:30:43 +01:00
Andy Wilkinson 4a80b36160 Configure native image classpath outside of task realisation
Closes gh-32465
2022-09-21 18:14:46 +01:00
Andy Wilkinson 6175c4210d Fix skipping of processAot when there is no main source
See gh-32424
2022-09-21 14:57:54 +01:00
Andy Wilkinson fa81e8ca79 Skip processAot and processTestAot if there is no main or test code
Closes gh-32424
2022-09-20 17:15:19 +01:00
Andy Wilkinson e8aa5680d6 Support file-based reachability metadata repositories
See gh-32408
2022-09-20 14:06:18 +01:00
Andy Wilkinson 8323f24ccc Make classes generated by AOT test processing available to nativeTest
Closes gh-32428
2022-09-20 11:29:18 +01:00
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
2022-09-16 12:26:24 -05:00
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
2022-09-15 14:02:54 +01:00
Andy Wilkinson 867c49337a Add AOT-generated classes to classpath of AOT JavaCompile tasks
See gh-32304
2022-09-13 13:03:24 +01:00
Andy Wilkinson aafceb3868 Merge branch '2.7.x'
Closes gh-32285
2022-09-09 16:47:06 +01:00
Andy Wilkinson f17df7bf30 Merge branch '2.6.x' into 2.7.x
Closes gh-32284
2022-09-09 16:46:43 +01:00
Andy Wilkinson 23c2f73b3f Update tests to allow them to run on Java 19
Closes gh-32280
2022-09-09 16:46:14 +01:00
Andy Wilkinson 144fdaa703 Merge branch '2.6.x' into 2.7.x
Closes gh-32283
2022-09-09 15:14:40 +01:00
Andy Wilkinson 78f4242e46 Build with Gradle 7.5 while still supporting Gradle 6.8+
Closes gh-32281
2022-09-09 15:13:43 +01:00
Andy Wilkinson 3dfe28c9f1 Ensure that a test engine is available to AOT test processing
See gh-32192
2022-09-05 09:41:28 +01:00
Andy Wilkinson cf84ae7ad8 Exclude non-existent test classes dirs from AOT test processing
See gh-32192
2022-09-05 09:41:21 +01:00
Andy Wilkinson fc979397be Polish SpringBootAotPlugin 2022-09-02 16:37:15 +01:00
Andy Wilkinson fd28f6d1d6 Add Gradle plugin support for processing test contexts ahead-of-time
Closes gh-32192
2022-09-02 15:54:46 +01:00
Phillip Webb c0b3d36205 Rename 'generateAotSources' task to processAot'
See gh-31918
2022-08-25 15:10:48 -07:00
Andy Wilkinson a8ae7a1e44 Fix Gradle AOT integration test on Windows
See gh-31970
2022-08-15 10:21:42 +01:00
Stephane Nicoll 332419e3a7 Remove extra 'build' directory
See gh-32069
2022-08-12 17:47:38 +02:00
Stephane Nicoll e21041ce65 Harmonize location of generated classes processed Ahead-of-time
Closes gh-32069
2022-08-11 17:07:16 +02:00
Andy Wilkinson cb18eb095b Make transitive runtime dependencies available to AOT processing
Closes gh-31970
2022-08-03 13:54:50 +01:00
Phillip Webb e08c16dfd6 Polish 2022-07-29 12:10:02 +01:00
Andy Wilkinson 6c28156b29 Avoid config-time creation of AOT source set's tasks
Closes gh-31844
2022-07-22 14:14:03 +01:00
Scott Frederick 6f65777035 Merge branch '2.7.x'
Closes gh-31827
2022-07-20 17:31:37 -05:00
Scott Frederick 9da38c8d2d Merge branch '2.6.x' into 2.7.x
Closes gh-31826
2022-07-20 17:29:58 -05:00
Scott Frederick 4e0b3aad9f Clarify how docker image publishing registry is determined
Closes gh-31820
2022-07-20 17:29:40 -05:00
Scott Frederick cf7a163c6d Merge branch '2.7.x' 2022-07-20 16:07:32 -05:00
Scott Frederick f9cf31e59e Fix compile errors
See gh-28844
2022-07-20 16:07:19 -05:00
Scott Frederick 36d6106bb0 Merge branch '2.7.x'
Closes gh-31825
2022-07-20 15:11:30 -05:00
Scott Frederick 09c7ce6dab Merge branch '2.6.x' into 2.7.x
Closes gh-31824
2022-07-20 15:10:43 -05:00
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
2022-07-20 15:06:05 -05:00
Andy Wilkinson 6da8c88b2b Include library resources on classpath of AOT source generation
Closes gh-31803
2022-07-20 10:07:02 +01:00
Andy Wilkinson 7bd9873cd9 Raise the minimum supported version of Gradle to 7.5
Closes gh-31215
2022-07-14 15:56:32 +01:00
Moritz Halbritter 3703b317ce Enable GraalVM reachability metadata repository
Closes gh-31687
2022-07-12 14:25:38 +02:00
dreis2211 5db04da275 Use pattern matching for instanceof where appropriate
See gh-31475
2022-06-20 17:55:36 +01:00
dreis2211 fb45fc4819 Use Files.writeString() and Files.readString() where possible
See gh-31459
2022-06-20 09:05:09 +02:00
dreis2211 a639685053 Remove obsolete Java compatibility code
See gh-31452
2022-06-19 10:22:23 +02:00
Johnny Lim 5d7d0d8047 Use 3.0.0 for Javadoc since tags
See gh-31448
2022-06-17 16:48:58 +02:00
Stephane Nicoll 99f71941cd Merge branch '2.7.x'
Closes gh-31363
2022-06-13 15:55:21 +02:00
Stephane Nicoll 499f54a335 Merge branch '2.6.x' into 2.7.x
Closes gh-31362
2022-06-13 15:51:45 +02:00
Lars Grefer 8c9557f552 Enable Links for the Javadoc of the Gradle Plugins
See gh-31279
2022-06-13 15:51:08 +02:00
Andy Wilkinson 1ba1eff63a Merge branch '2.7.x' 2022-05-30 19:22:45 +01:00
Andy Wilkinson 430040415b Merge branch '2.6.x' into 2.7.x 2022-05-30 19:22:37 +01:00
Andy Wilkinson 0b6c147a87 Polish 2022-05-30 19:22:30 +01:00
Andy Wilkinson 12465ea6b7 Merge branch '2.7.x'
Closes gh-31214
2022-05-30 18:24:12 +01:00
Andy Wilkinson d1420b6abb Merge branch '2.6.x' into 2.7.x
Closes gh-31213
2022-05-30 18:24:00 +01:00
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
2022-05-30 18:19:47 +01:00
Andy Wilkinson 4bb5ba2bd0 Merge branch '2.7.x' 2022-05-26 18:26:52 +01:00
Andy Wilkinson 5dfa5adb75 Merge branch '2.7.x'
Closes gh-31178
2022-05-26 15:54:58 +01:00
Andy Wilkinson 455ee0ce22 Merge branch '2.6.x' into 2.7.x
Closes gh-31177
2022-05-26 15:53:38 +01:00
Andy Wilkinson ee45fd2fc8 Remove redundant throws declarations from internal APIs
Closes gh-31176
2022-05-26 15:47:35 +01:00
Andy Wilkinson b3a4982f31 Merge branch '2.6.x' into 2.7.x
Closes gh-31174
2022-05-26 14:01:23 +01:00
Andy Wilkinson cbf42dea14 Update deprecation messages to change removal version from 2.8 to 3.0
Closes gh-30903
2022-05-26 13:59:03 +01:00
Andy Wilkinson 003f747e77 Merge branch '2.7.x'
Closes gh-31170
2022-05-26 13:52:41 +01:00
Phillip Webb ea41e89c6c Merge branch '2.5.x' into 2.6.x 2022-05-17 22:21:10 -07:00
Phillip Webb 7d2f1bafc0 Update copyright year of changed files 2022-05-17 22:20:05 -07:00
Phillip Webb 06f8041e4d Merge branch '2.7.x' 2022-05-17 21:50:42 -07:00
Phillip Webb d5d5997be7 Merge branch '2.6.x' into 2.7.x 2022-05-17 21:49:20 -07:00
Phillip Webb 99f5c781a5 Merge branch '2.5.x' into 2.6.x 2022-05-17 21:48:50 -07:00
Phillip Webb 350d27fe50 Polish code to use method references when possible 2022-05-17 21:16:42 -07:00
Andy Wilkinson 293a3c9ec1 Fix arguments passed to AOT processing in Gradle plugin
See gh-30527
2022-05-06 11:18:01 +01:00
Phillip Webb 8cf63a28b8 Update AOT work to latest Framework code 2022-05-05 15:19:33 -07:00
Andy Wilkinson 541ab69aff Merge branch '2.7.x' 2022-05-03 15:18:20 +01:00
Andy Wilkinson 4cd850cfc0 Merge branch '2.6.x' into 2.7.x
Closes gh-30851
2022-05-03 15:17:13 +01:00
Andy Wilkinson fa327a783d Merge branch '2.5.x' into 2.6.x
Closes gh-30850
2022-05-03 15:14:00 +01:00
Andy Wilkinson 4fd2e0c916 Polish "Fix typos"
See gh-30773
2022-05-03 14:09:53 +01:00
Andy Wilkinson f6d24dc1a8 Fix typos
See gh-30773
2022-05-03 14:09:37 +01:00
Andy Wilkinson fcf45d5c22 Add support for invoking AOT to the Gradle plugin
Closes gh-30527
2022-04-29 14:32:23 +01:00
Andy Wilkinson eacd8c04a5 Merge branch '2.7.x' 2022-04-25 15:03:52 +01:00
Andy Wilkinson 56690a7eb9 Merge branch '2.6.x' into 2.7.x
Closes gh-30791
2022-04-25 15:03:32 +01:00
Andy Wilkinson 409ec48e2a Merge branch '2.5.x' into 2.6.x
Closes gh-30790
2022-04-25 15:00:51 +01:00
Andy Wilkinson 193ef9a06d Package META-INF/services/ files beneath BOOT-INF/classes/
Closes gh-30413
2022-04-25 14:32:47 +01:00
Stephane Nicoll a4cccc98c6 Merge branch '2.7.x' 2022-04-19 09:37:08 +02:00
izeye ed412af138 Polish
See gh-30695
2022-04-19 09:34:28 +02:00
Andy Wilkinson 7e97073994 Merge branch '2.7.x' 2022-04-14 18:38:26 +01:00
Andy Wilkinson 74494f1d37 Merge branch '2.6.x' into 2.7.x
Closes gh-30671
2022-04-14 18:38:09 +01:00
Andy Wilkinson 1720290234 Merge branch '2.5.x' into 2.6.x
Closes gh-30670
2022-04-14 18:37:55 +01:00
Andy Wilkinson f7d181e65b Handle null additional properties more gracefully
Closes gh-30654
2022-04-14 18:36:15 +01:00
izeye 40d0e38e76 Test Spring Boot Gradle Plugin against Gradle 7.4.2
See gh-30506
2022-04-03 09:29:50 +02:00
Andy Wilkinson 42ae55895d Simplify resolution of the application's main class name
Closes gh-30467
2022-03-29 15:51:22 +01:00
Andy Wilkinson d9c2e7c85a Merge branch '2.7.x' 2022-03-29 15:07:08 +01:00
Andy Wilkinson 4722d9d17e Merge branch '2.6.x' into 2.7.x
Closes gh-30470
2022-03-29 15:06:56 +01:00
Andy Wilkinson 880d33f391 Merge branch '2.5.x' into 2.6.x
Closes gh-30469
2022-03-29 15:06:47 +01:00
Andy Wilkinson 05b7befc7a Fix javadoc of ResolveMainClassName setClasspath(Object)
Closes gh-30468
2022-03-29 15:05:54 +01:00
Andy Wilkinson 98678ed415 Merge branch '2.7.x' 2022-03-15 17:36:23 +00:00
Andy Wilkinson b4cbcd797e Merge branch '2.6.x' into 2.7.x
Closes gh-30218
2022-03-15 17:36:08 +00:00
Andy Wilkinson c4d2602a3e Merge branch '2.5.x' into 2.6.x
Closes gh-30217
2022-03-15 17:34:53 +00:00
Octavia Togami 264a6888a9 Refactor code to avoid using internal LazyPublishArtifact
See gh-30209
2022-03-15 17:09:15 +00:00
Andy Wilkinson 9bf77b1a06 Merge branch '2.7.x' 2022-03-15 15:31:03 +00:00
Andy Wilkinson 4935c11a07 Merge branch '2.6.x' into 2.7.x
Closes gh-30215
2022-03-15 15:30:40 +00:00
Andy Wilkinson 464fce621d Merge branch '2.5.x' into 2.6.x
Closes gh-30213
2022-03-15 15:30:06 +00:00
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
2022-03-15 15:28:59 +00:00
Scott Frederick 377b13c048 Merge branch '2.7.x' 2022-03-11 16:39:49 -06:00
Scott Frederick de321b00b7 Support podman for building images
Closes gh-30196
2022-03-11 16:39:07 -06:00
Scott Frederick 5e07db7d21 Merge branch '2.7.x' 2022-03-11 15:59:16 -06:00
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
2022-03-11 15:27:22 -06:00
Andy Wilkinson 5264fb3d1e Test our Gradle Plugin against Gradle 7.4.1
Closes gh-30139
2022-03-09 18:09:07 +00:00
Andy Wilkinson e9d2ec507e Merge branch '2.7.x' 2022-03-09 15:17:25 +00:00
Andy Wilkinson d552f49128 Merge branch '2.7.x' 2022-03-09 12:53:15 +00:00
Andy Wilkinson 83de1995c7 Merge branch '2.6.x' into 2.7.x
Closes gh-30130
2022-03-09 12:44:53 +00:00
Andy Wilkinson b0e4cabdd8 Merge branch '2.5.x' into 2.6.x
Closes gh-30123
2022-03-09 12:37:45 +00:00
Andy Wilkinson 20d21d4e58 Set up CI with JDK 18
Closes gh-30104
2022-03-09 12:28:34 +00:00
Madhura Bhave 5960d2dba1 Merge branch '2.7.x' into main 2022-03-07 21:54:10 -08:00
Madhura Bhave 9628507756 Merge branch '2.6.x' into 2.7.x
Closes gh-30094
2022-03-07 21:53:59 -08:00
Madhura Bhave d131003456 Merge branch '2.5.x' into 2.6.x
Closes gh-30093
2022-03-07 21:53:44 -08:00
Madhura Bhave 480ccc6175 Clarify devtools documentation when using with build plugins
Closes gh-17851
2022-03-07 21:52:43 -08:00
Andy Wilkinson e2d0b348e3 Merge branch '2.7.x' 2022-03-03 20:36:13 +00:00
Andy Wilkinson 4459fb46be Merge branch '2.6.x' into 2.7.x
Closes gh-30058
2022-03-03 20:34:46 +00:00
Andy Wilkinson 2ba8b490a0 Merge branch '2.5.x' into 2.6.x
Closes gh-30057
2022-03-03 20:34:34 +00:00
Andy Wilkinson e7566e968e Use configuration avoidance APIs in Gradle plugin's docs
Closes gh-30056
2022-03-03 20:27:46 +00:00
Andy Wilkinson a5ec85bede Merge branch '2.7.x' 2022-03-02 15:24:23 +00:00
Andy Wilkinson b89c29f29c Merge branch '2.6.x' into 2.7.x
Closes gh-30037
2022-03-02 15:24:10 +00:00
Andy Wilkinson ea729fc1c6 Merge branch '2.5.x' into 2.6.x
Closes gh-30036
2022-03-02 15:21:43 +00:00
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
2022-03-02 15:19:09 +00:00
Andy Wilkinson 6051a10d4a Merge branch '2.7.x' 2022-02-23 09:01:26 +00:00
Andy Wilkinson 1ae46dee6d Merge branch '2.6.x' into 2.7.x
Closes gh-29967
2022-02-23 08:59:33 +00:00
Andy Wilkinson 4f8a18fa0a Merge branch '2.5.x' into 2.6.x
Closes gh-29966
2022-02-23 08:59:16 +00:00
Andy Wilkinson 9c9e04b8e4 Use mainClass rather than deprecated main in BootRun examples
Closes gh-29965
2022-02-23 08:59:04 +00:00
Phillip Webb ff4b92a3ba Update copyright year of changed files 2022-02-16 20:44:54 -08:00
Phillip Webb f4b849ec95 Merge branch '2.7.x' 2022-02-16 20:27:18 -08:00
Phillip Webb 26512f8ac6 Merge branch '2.6.x' into 2.7.x 2022-02-16 20:24:59 -08:00
Phillip Webb 5b4ec32645 Merge branch '2.5.x' into 2.6.x 2022-02-16 18:56:12 -08:00
Phillip Webb c86b1330cf Update copyright year of changed files 2022-02-16 17:56:19 -08:00
Phillip Webb 9ab1b669d0 Polish 2022-02-16 17:56:07 -08:00
Andy Wilkinson d62d5a09a1 Merge branch '2.7.x' 2022-02-16 14:59:55 +00:00
Andy Wilkinson ba73436ea8 Merge branch '2.6.x' into 2.7.x
Closes gh-29881
2022-02-16 14:59:39 +00:00
Andy Wilkinson 86c75b7a5c Merge branch '2.5.x' into 2.6.x
Closes gh-29880
2022-02-16 14:58:58 +00:00
Andy Wilkinson 03352b0a8c Prohibit use of APIs that prevent task configuration avoidance
Closes gh-29809
2022-02-16 14:57:47 +00:00
Andy Wilkinson d7fa2e2e8f Merge branch '2.7.x' 2022-02-16 12:01:47 +00:00
Andy Wilkinson 8e4484acea Merge branch '2.6.x' into 2.7.x
Closes gh-29878
2022-02-16 12:01:31 +00:00
Andy Wilkinson ce4beae12f Merge branch '2.5.x' into 2.6.x
Closes gh-29877
2022-02-16 12:01:15 +00:00
izeye 6bd6f590d3 Fix Javadoc since for ResolveMainClassName#setClasspath(Object)
See gh-29826
2022-02-16 12:00:31 +00:00
Andy Wilkinson 9808e80ab4 Merge branch '2.7.x' 2022-02-15 12:31:38 +00:00
Andy Wilkinson a513dbb797 Merge branch '2.6.x' into 2.7.x
Closes gh-29818
2022-02-15 12:24:38 +00:00
Andy Wilkinson f134358c78 Merge branch '2.5.x' into 2.6.x
Closes gh-29817
2022-02-15 12:24:05 +00:00
Andy Wilkinson c84b35c460 Polish "Avoid using Gradle APIs that trigger eager task creation"
See gh-29762
2022-02-15 08:36:29 +00:00
Lars Grefer 7cd87acd73 Avoid using Gradle APIs that trigger eager task creation
See gh-29762
2022-02-15 08:24:14 +00:00
Andy Wilkinson e52a5490bf Merge branch '2.7.x' 2022-02-14 12:39:26 +00:00
Andy Wilkinson 25e75c60ee Merge branch '2.6.x' into 2.7.x
Closes gh-29806
2022-02-14 12:32:47 +00:00
Andy Wilkinson 85d14cdb2c Merge branch '2.5.x' into 2.6.x
Closes gh-29805
2022-02-14 12:32:32 +00:00
Andy Wilkinson 1fd4a4d86b Remove code related to unsupported versions of Gradle
Closes gh-29681
2022-02-14 12:31:21 +00:00
Andy Wilkinson 68bdef2cd0 Merge branch '2.7.x' 2022-02-11 13:35:03 +00:00
Andy Wilkinson da61545925 Merge branch '2.6.x' into 2.7.x
Closes gh-29749
2022-02-11 13:34:51 +00:00
Andy Wilkinson 646bb05c8d Merge branch '2.5.x' into 2.6.x
Closes gh-29748
2022-02-11 13:34:40 +00:00
Andy Wilkinson c3eee4ad68 Align Gradle's plugin's META-INF repackaging with Maven plugin's
Closes gh-28562
2022-02-11 13:32:52 +00:00
Andy Wilkinson fc23310144 Merge branch '2.6.x' into 2.7.x
Closes gh-29734
2022-02-10 17:13:56 +00:00
Andy Wilkinson d6ebce4ccf Merge branch '2.5.x' into 2.6.x
Closes gh-29733
2022-02-10 17:02:39 +00:00
Andy Wilkinson 6901f6dab2 Test our Gradle plugin against Gradle 7.4
Closes gh-29673
2022-02-10 16:57:13 +00:00
Andy Wilkinson 067a8dd3ec Raise the minimum supported version of Gradle to 7.4
Closes gh-29674
2022-02-09 15:02:17 +00:00
Andy Wilkinson 01cc07978b Merge branch '2.7.x' 2022-02-09 11:35:13 +00:00
Andy Wilkinson 665e1f665e Merge branch '2.6.x' into 2.7.x
Closes gh-29688
2022-02-09 11:35:03 +00:00
Andy Wilkinson b46eba16e6 Merge branch '2.5.x' into 2.6.x
Closes gh-29687
2022-02-09 11:34:51 +00:00
Andy Wilkinson 48fe1513fe Test documented build script snippets when they change
Closes gh-29684
2022-02-09 11:33:40 +00:00
Andy Wilkinson 41d49717af Merge branch '2.7.x' 2022-02-09 11:32:54 +00:00
Andy Wilkinson 1e16c2f229 Merge branch '2.6.x' into 2.7.x
Closes gh-29686
2022-02-09 11:32:43 +00:00
Andy Wilkinson c0664efa86 Merge branch '2.5.x' into 2.6.x
Closes gh-29685
2022-02-09 11:32:32 +00:00
Mike Partridge 2e9dcdd96d Replace use of classifier with archiveClassifier
classifier has been deprecated so the docs should be using its
replacement, archiveClassifier, instead.

See gh-29611
2022-02-09 11:31:22 +00:00
Andy Wilkinson 96118c88db Merge branch '2.7.x' 2022-02-08 19:23:53 +00:00
Andy Wilkinson 41863d4b80 Merge branch '2.6.x' into 2.7.x
Closes gh-29680
2022-02-08 19:21:59 +00:00
Andy Wilkinson 358cdb33f7 Merge branch '2.5.x' into 2.6.x
Closes gh-29679
2022-02-08 19:21:48 +00:00
Andy Wilkinson 43ca2d2cb0 Access classpath lazily to allow later changes to be picked up
Previously, the classpath of bootJar, bootWar, and bootRun was
configured directly as a FileCollection derived from the main source
set's runtime classpath. This direct configuration meant that
subsequent changes to the main source set's runtime classpath may not
have been picked up.

This commit changes the configuration of the classpath to use a
Callable. This indirection allows subsequent changes to the main
source set's runtime classpath to be picked up as long as they
occur before Gradle calls the callable.

Closes gh-29672
2022-02-08 19:21:37 +00:00
Stephane Nicoll cad11addb2 Merge branch '2.7.x' 2022-01-07 17:58:35 +01:00
Stephane Nicoll 980aa616c8 Fix build failure
See gh-29290
2022-01-07 17:58:15 +01:00
Stephane Nicoll 11e604af41 Merge branch '2.7.x' 2022-01-07 14:43:19 +01:00
Stephane Nicoll 9821cdfd8b Remove deprecated code
Closes gh-29290
2022-01-07 14:42:14 +01:00
izeye 9a6c1c531d Test our Gradle plugin against Gradle 7.3.3
See gh-29161
2021-12-25 09:52:14 +01:00
Stephane Nicoll 8c9d398422 Test our Gradle plugin against Gradle 7.3.2
Closes gh-29093
2021-12-17 09:11:44 +01:00
Phillip Webb 003fb229fd Merge branch '2.7.x' 2021-12-16 13:07:22 -08:00
Phillip Webb f3bcbca841 Update copyright year of changed files 2021-12-16 13:05:17 -08:00
Stephane Nicoll 50c15769ff Merge branch '2.7.x' 2021-12-13 09:23:52 +01:00
Stephane Nicoll 5383de4fe1 Merge branch '2.6.x' into 2.7.x 2021-12-13 09:23:44 +01:00
Stephane Nicoll 32ecbb89d6 Merge branch '2.5.x' into 2.6.x 2021-12-13 09:23:33 +01:00
Stephane Nicoll 496cd3d2ba Polish
See gh-28999
2021-12-13 09:23:08 +01:00
Scott Frederick c78b157e95 Merge branch '2.7.x' 2021-12-09 16:42:33 -06:00
Scott Frederick 8f57f0babb Add classpath index support for exploded war archives
Update the Maven and Gradle packaging for war files so that a
`classpath.idx` file is written into the archive that provides the
original order of the classpath, as was previously done for jar files.
The `WarLauncher` class will use this file when running as an exploded
archive to ensure that the classpath order is the same as when running
from the far war.

Fixes gh-19875
2021-12-09 16:41:49 -06:00
Andy Wilkinson af60a8a7cf Test our Gradle plugin against Gradle 7.3.1
Closes gh-28890
2021-12-02 10:29:22 +00:00
Andy Wilkinson 814c86c5e8 Raise the minimum supported version of Gradle to 7.3
Closes gh-28100
2021-11-30 15:36:54 +00:00
Phillip Webb beb68671bb Update copyright year of changed files 2021-11-24 10:23:32 -08:00
Andy Wilkinson 0074d621d0 Merge branch '2.5.x'
Closes gh-28754
2021-11-19 15:37:32 +00:00
Andy Wilkinson 015cf920da Name custom task inputs
Closes gh-28753
2021-11-19 15:35:39 +00:00
Andy Wilkinson c0d90dfa8f Merge branch '2.5.x'
Closes gh-28749
2021-11-19 13:36:01 +00:00
Andy Wilkinson c083e0b049 Avoid using temp before @TempDir has initialized it
Closes gh-28748
2021-11-19 13:35:30 +00:00
Andy Wilkinson 0aae9c26da Test our Gradle plugin against Gradle 7.3
Closes gh-28679
2021-11-15 12:47:51 +00:00
Andy Wilkinson 2a342ef416 Merge branch '2.5.x'
Closes gh-28662
2021-11-12 23:40:35 +00:00
Andy Wilkinson 5e4a502b2d Merge branch '2.4.x' into 2.5.x
Closes gh-28661
2021-11-12 20:31:25 +00:00
Andy Wilkinson 2cec3971d7 Prohibit unwanted dependencies in all modules not just starters
Closes gh-28658
2021-11-12 20:04:35 +00:00
Stephane Nicoll 98d3e99ac9 Merge branch '2.5.x'
Closes gh-28550
2021-11-08 08:29:56 +01:00
Stephane Nicoll 91f7ff3ba3 Merge branch '2.4.x' into 2.5.x
Closes gh-28549
2021-11-08 08:29:43 +01:00
slowjoe007 5a121197fc Fix typo
See gh-28548
2021-11-08 08:28:28 +01:00
Scott Frederick e84c1abb0f Prevent Docker volume name clashes in tests during parallel builds
See gh-28292
2021-10-21 15:07:15 -05:00
Phillip Webb e25f216eab Merge branch '2.5.x'
Closes gh-28425
2021-10-21 11:28:33 -07:00
Phillip Webb daf36dff55 Merge branch '2.4.x' into 2.5.x
Closes gh-28424
2021-10-21 11:27:29 -07:00
Phillip Webb 2f6651c3cb Don't use markdown syntax in javadoc or error messages
Closes gh-28408
2021-10-21 11:24:54 -07:00
Scott Frederick 871468931f Polish "Add option to customize cache volume names when building an image"
See gh-28292
2021-10-19 15:38:12 -05:00
Julian Liebig dc36346285 Add option to customize cache volume names when building an image
This commit adds configuration to the Maven and Gradle plugins to
allow specifying the names of build and launch cache volumes provided
to the CNB builder.

See gh-28292
2021-10-19 15:38:12 -05:00
Phillip Webb f4bd8956af Polish "Allow build info properties to be excluded"
Update the Maven plugin to use an alternative syntax to exclude
the info properties and apply some minor polishing.

See gh-27412
2021-10-13 21:12:45 -07:00
Vedran Pavic ea9faf8690 Allow build info properties to be excluded
Update Maven and Gradle plugins to allow build info properties to be
excluded.

Prior to this commit, the `BuildPropertiesWriter` would fail with an
NPE if the group, artifact, name or version properties were `null`.

This was specifically problematic with the Gradle plugin, since its
DSL allows `null` properties which would either be passed to the writer
or, in the case of `artifact`, converted into a string value of
"unspecified".

See gh-27412
2021-10-13 21:07:09 -07:00
Andy Wilkinson 1a505964ee Merge branch '2.5.x'
Closes gh-28207
2021-10-06 10:03:24 +01:00
Andy Wilkinson 1931104d13 Merge branch '2.4.x' into 2.5.x
Closes gh-28206
2021-10-06 09:57:19 +01:00
Vincent Ricard 873bca36c4 Replace latin locutions in the documentation
See gh-28141
2021-10-01 07:33:01 +02:00
Scott Frederick 64c49003aa Polish "Add option to create tags for a built image"
See gh-27613
2021-09-28 15:32:27 -05:00
Rafael Ceccone 66f44b0c7f Add option to create tags for a built image
This commit adds configuration to the Maven and Gradle plugins to
allow specifying multiple tag to be created that refer to the built
image.

See gh-27613
2021-09-28 15:32:27 -05:00
dreis2211 cf0fcafd13 Polish
See gh-27940
2021-09-21 08:08:29 +02:00
Scott Frederick 96238ba8b7 Expose default value for imageName in bootBuildImage task
Fixes gh-28040
2021-09-16 15:51:12 -05:00
Andy Wilkinson f530819d68 Merge branch '2.4.x' into 2.5.x
Closes gh-27966
2021-09-13 10:47:47 +01:00
Andy Wilkinson 273600bcdd Retain distinction between compile and runtime deps of optional deps
Previously, the optional configuration was added to the compile and
runtime classpaths of each source set and the the javadoc classpath
as well. This had a few disadvantages, the most notable of which is
that it meant that the configuration was ifrst resolved and then
the outcome of the resolution was added to the compile and runtime
classpaths. As a result, none of the attributes on the compile and
runtime classpaths were considered to influence variant selection.

This commit reworks the optional dependencies plugin so that the
compile and runtime classpaths of each source set are now configured
to extend from the optional configuration. This allows each
classpath configuration's attributes to influence the dependencies
that are selected from the optional configuration during resolution.
For example, when resolving the compile classpath, compile
dependencies (Usage.JAVA_API) will be selected and when resolving the
runtime classpath, runtime dependencies (Usage.JAVA_RUNTIME) will be
selected.

The above-described change means that runtime dependencies of an
optional dependencies will no longer leak into the compile classpath.
As a result of this, our Gradle plugin's test infrastructure has
been updated so that it no longer references runtime dependencies of
the Kotlin Gradle plugin at compile time.

Closes gh-27965
2021-09-13 10:47:14 +01:00
Andy Wilkinson fd2fbcb3c6 Merge branch '2.5.x'
Closes gh-27758
2021-08-18 18:28:34 +01:00
Andy Wilkinson 6d8ba3e8b1 Merge branch '2.4.x' into 2.5.x
Closes gh-27757
2021-08-18 17:56:32 +01:00
Andy Wilkinson ffbd28b60a Polish "Polish access modifiers for test classes"
See gh-27736
2021-08-18 17:52:42 +01:00
izeye 8a425dedfd Polish access modifiers for test classes
See gh-27736
2021-08-18 17:38:40 +01:00
Andy Wilkinson b4f0f29bff Test our Gradle plugin against Gradle 7.2
Closes gh-27732
2021-08-17 15:58:40 +01:00
Scott Frederick 2178c281e9 Polish "Add network option for image building"
See gh-27486
2021-08-12 17:08:52 -05:00
Jeroen Meijer 8e6d03b221 Add network option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow specifying the network mode to be provided to the image
building goal and task.

See gh-27486
2021-08-12 17:08:52 -05:00
Andy Wilkinson 119fb6948d Test our Gradle plugin against Gradle 7.2-rc-3
Closes gh-27640
2021-08-12 15:26:50 +01:00
Andy Wilkinson c43c22283d Merge branch '2.5.x'
Closes gh-27621
2021-08-10 10:45:31 +01:00
Andy Wilkinson f19fff4c64 Merge branch '2.4.x' into 2.5.x
Closes gh-27620
2021-08-10 10:45:07 +01:00
Andy Wilkinson d4d1ca007e Mention productionRuntimeClasspath in the docs
Closes gh-27558
2021-08-10 10:44:57 +01:00
Andy Wilkinson 7610fe02c5 Test our Gradle plugin against 7.2-rc-2
Closes gh-27593
2021-08-09 09:50:07 +01:00
Stephane Nicoll 9826304e29 Merge branch '2.4.x' into 2.5.x
Closes gh-27557
2021-08-04 09:25:25 +02:00
izeye 9f44cefc56 Use deprecated mainClassName in Gradle test
See gh-27537
2021-08-04 09:23:52 +02:00
Andy Wilkinson cdad8e2b7f Merge branch '2.5.x' 2021-07-29 17:28:38 +01:00
Andy Wilkinson 85054723f0 Reinstate GradleProjectBuilder for compatibility with JDK17-ea32
See gh-27521
2021-07-29 17:22:59 +01:00
Andy Wilkinson 23c4674352 Merge branch '2.5.x'
Closes gh-27522
2021-07-29 12:24:54 +01:00
Andy Wilkinson ca5af2d456 Test our Gradle plugin against Gradle 7.2-rc-1
Closes gh-27521
2021-07-29 12:05:14 +01:00
Andy Wilkinson 04dc62904f Merge branch '2.4.x' into 2.5.x
Closes gh-27495
2021-07-26 15:23:17 +01:00
Andy Wilkinson 5d9da7206e Limit use of deprecated mainClassName in Gradle plugin tests
Closes gh-27320
2021-07-26 15:21:44 +01:00
Scott Frederick 9f001efa29 Adjust fat jar central directory to account for launch script
An upgrade to Apache Commons Compress allows the build plugins to write
the launch script to the fat jar as a proper preamble, making the file
compatible with more jar and zip tooling.

Fixes gh-22336
2021-07-19 15:02:42 -05:00
Scott Frederick a0b32251eb Split gradle test support into a separate module
See gh-25824
2021-07-16 12:52:39 -05:00
Andy Wilkinson 25234219ce Merge branch '2.5.x'
Closes gh-27365
2021-07-16 11:51:43 +01:00
dreis2211 be38ce3645 Disable Gradle plugin tests that fail on JDK 17
See gh-27328
2021-07-16 11:42:51 +01:00
Stephane Nicoll dc5acb0019 Remove deprecated code flagged for removal
Closes gh-27303
2021-07-14 11:50:01 +02:00
Scott Frederick 18c7c0af22 Add Paketo image building system tests
A new system test plugin is being made available for running test
suites that should be run less frequently than with every commit, such
as tests that verify Spring Boot compatibility with external
projects. CI pipeline configuration for running system tests is also
provided.

The first system tests verify the behavior of the Spring Boot image
building plugins when building images using Paketo buildpacks.

Closes gh-25824
2021-07-08 17:02:43 -05:00
Andy Wilkinson ff79787def Avoid using deprecated API to get Kotlin Plugin's version
Closes gh-27090
2021-07-08 10:45:09 +01:00
Andy Wilkinson c21791e671 Test our Gradle plugin against Gradle 7.1.1
Closes gh-27142
2021-07-07 17:57:14 +01:00
Phillip Webb dfbd82b838 Fix Kotlin 1.5.20 classpath issues
See gh-27086
2021-06-24 14:05:36 -07:00