Commit Graph

280 Commits

Author SHA1 Message Date
Andy Wilkinson
aeea15be0f Merge branch '2.4.x'
Closes gh-26365
2021-05-05 09:53:20 +01:00
Andy Wilkinson
f7fae8f0f2 Merge branch '2.3.x' into 2.4.x
Closes gh-26364
2021-05-05 09:52:53 +01:00
Andy Wilkinson
b3275c5647 Align productionRuntimeClasspath with runtimeClasspath
Fixes gh-25798
2021-05-05 09:52:44 +01:00
Andy Wilkinson
fa81b41afc Merge branch '2.4.x'
Closes gh-26301
2021-04-29 11:37:13 +01:00
Andy Wilkinson
94519c33b1 Merge branch '2.3.x' into 2.4.x
Closes gh-26300
2021-04-29 11:36:15 +01:00
Andy Wilkinson
ef5fbb0669 Configure bootBuildImage's targetJavaVersion using a provider
Previously, the targetJavaVersion property of bootBuildImage was set
using the project's target compatibility directly. This meant that
property's value would reflect the configured target compatibility at
the time of the task's creation and any subsequent changes to the
target compatibility would be missed.

This commit updates the registration of the bootBuildImage task to set
the value of the targetJavaVersion property using a provider. This
indirection means that the project's target compatibility isn't read
until the value of the targetJavaVersion is read, allowing any changes
to the target compatibility to be picked up even if they're made after
the bootBuildImage task has been created.

Fixes gh-26297
2021-04-29 11:36:03 +01:00
Stephane Nicoll
548baf7914 Update copyright year of changed file
See gh-26145
2021-04-19 09:34:56 +02:00
izeye
996472b42d Polish
See gh-26145
2021-04-19 09:34:55 +02:00
Andy Wilkinson
c4750fd0ff Support Gradle 7 and raise minimum supported version to 6.8
Closes gh-26026
2021-04-12 15:20:32 +01:00
Phillip Webb
807ea1af0d Update copyright year of changed files 2021-04-06 14:59:52 -07:00
Phillip Webb
8c31d29acf Merge branch '2.4.x' 2021-03-30 09:29:59 -07:00
Phillip Webb
a28a3ae090 Merge branch '2.3.x' into 2.4.x 2021-03-30 09:25:46 -07:00
Phillip Webb
9c8a97809d Consistent use of @deprecated since
Restore the patch version number for consistency with `@since`
tags.

See gh-25808
2021-03-30 09:20:30 -07:00
Phillip Webb
c9451b59f2 Merge branch '2.4.x' 2021-03-29 15:51:23 -07:00
Phillip Webb
a0f5169966 Polish 2021-03-29 15:51:13 -07:00
Phillip Webb
44b1751bb4 Merge branch '2.4.x'
Closes gh-25826
2021-03-29 15:48:20 -07:00
Phillip Webb
363f5829d1 Merge branch '2.3.x' into 2.4.x
Closes gh-25825
2021-03-29 15:46:50 -07:00
Phillip Webb
26dd1b9a26 Update deprecations with for removal targets
Update all deprecation tags to include a removal target.

Closes gh-25808
2021-03-29 15:44:58 -07:00
Andy Wilkinson
fb670ee654 Drop support for Gradle 5.6.x
Closes gh-24225
2021-03-19 17:30:27 +00:00
Andy Wilkinson
ebdb046ca9 Leave jar and war tasks enabled but configured with a classifier
Closes gh-23797
2021-03-16 10:31:56 +00:00
Scott Frederick
a80c4ad38d Support image building with Gradle and war packaging
This commit updates the Gradle image building task to support building
images from executable and non-executable war files.

Fixes gh-23825
2021-02-24 14:42:46 -06:00
Scott Frederick
89555a8745 Add bindings option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow a list of volume mount bindings to be provided to the image
building goal and task. This enables service bindings to be mounted
in the builder image that are recognized by buildpacks to support
custom certificates, build tool configuration, APM integration, and
other buildpack features.

Fixes gh-23518
2021-02-22 16:51:24 -06:00
Andy Wilkinson
a14bf7a3b8 Deprecate support for Gradle's maven plugin
Closes gh-25267
2021-02-19 19:29:17 +00:00
Scott Frederick
f54f784f80 Add buildpack option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow a list of buildpacks to be provided to the image building
goal and task.

Fixes gh-21722
2021-02-18 17:28:25 -06:00
Andy Wilkinson
514aede91e Merge branch '2.4.x'
Closes gh-25168
2021-02-10 12:20:02 +00:00
Andy Wilkinson
45e6c12cb6 Consider transitives when identifying project dependencies
Previously, when building a layered jar, the Gradle plugin only
considered a configuration's direct dependencies when identifying
project dependencies. This resulted in transitive project dependencies
being missed when deciding which dependencies belong in the
application layer.

This commit updates ResolvedDependencies to consider all projects
from the root project when collecting the IDs of local projects. This
ensures that any project dependency, no matter where it appears in the
dependency graph, is successfully identified.

Fixes gh-25163
2021-02-10 12:10:07 +00:00
Phillip Webb
d9f3e89395 Merge branch '2.4.x' 2021-02-01 22:11:17 -08:00
Madhura Bhave
1245e5eec9 Add support for creating layered war files with Gradle
See gh-22195
2021-02-01 14:43:42 -08:00
Stephane Nicoll
2c2c160579 Remove deprecated code
See gh-24806
2021-01-15 14:14:33 +01:00
Andy Wilkinson
c3dfb9bd29 Merge branch '2.3.x' into 2.4.x
Closes gh-24768
2021-01-12 13:12:10 +00:00
Andy Wilkinson
997505005b Handle files larger than Integer.MAX_VALUE bytes in bootJar and bootWar
Fixes gh-24618
2021-01-12 13:11:46 +00:00
Andy Wilkinson
5ae9fbedcd Merge branch '2.3.x' into 2.4.x
Closes gh-24738
2021-01-11 11:33:30 +00:00
Andy Wilkinson
7625a979db Configure bootRun to use project's Java toolchain by default
Previously, unlike the application plugin's run task, our bootRun task
ignored the project's Java toolchain. This meant that the application
was run on a JVM with the same Java version as the one being used by
Gradle itself. This could result in a failure if the application
required a more modern JVM.

This commit updates the plugin to configure the bootRun task's
JavaLauncher convention to be one derived from the project's Java
toolchain. Toolchain support was introduced in Gradle 6.7 so this is
only done when using Gradle 6.7 and later.

Fixes gh-24517
2021-01-11 11:21:53 +00:00
Andy Wilkinson
3c3aa9e486 Merge branch '2.3.x' into 2.4.x
Closes gh-24735
2021-01-11 11:03:35 +00:00
Andy Wilkinson
064de4e073 Check configured JavaLauncher when determining version of the JVM
Previously, bootRun assumed that the Java version of the JVM that would
run the application would be the same as the Java version of the JVM
that is running the build. This assumption does not hold true when
Gradle's toolchain support is used to configure tasks that fork a new
JVM to use a version other than that being used by Gradle itself.

This commit updates the BootRun task to query the JavaLauncher property
when determining the version of Java on which the application will be
run. Toolchain support and the JavaLauncher property are new in Gradle
6.7. To support earlier versions of Gradle, NoSuchMethodError is caught
we continue as if no JavaLauncher has been configured and use the local
JVM's Java version.

Fixes gh-24512
2021-01-11 10:36:16 +00:00
Andy Wilkinson
9e389c8376 Merge branch '2.3.x' into 2.4.x
Closes gh-24710
2021-01-08 17:07:45 +00:00
Andy Wilkinson
5ad4d627fd Fix classpath index so entries match those expected by the launcher
This reverts commit ad164269e9 and adds
some additional tests.

Fixes gh-24192
2021-01-08 15:32:19 +00:00
Scott Frederick
dfcabe1665 Merge branch '2.3.x' into 2.4.x
Fixes gh-24521 in 2.4.2
2020-12-16 14:53:55 -06:00
Scott Frederick
0e5df2296e Fail with Gradle bootBuildImage and war packaging
Prior to this commit, running the bootBuildImage Gradle task on a
project configured for war packaging would result in a jar file being
built and used in the image instead of the war file. With this commit
an error will be thrown from the plugin in this case.

Fixes gh-24521
2020-12-16 13:23:43 -06:00
Andy Wilkinson
5fdb2ae2fd Protect PluginApplicationActions against absent plugin classes
Closes gh-24526
2020-12-16 09:51:25 +00:00
Andy Wilkinson
409e3ccecf Ignore resolution of copied configuration
When a Configuration is copied, any before and after resolve actions
that are registered with its ResolvableDependencies are also copied
over. This means that, when a copied configuration is resolved the
resolution actions may be called on a ResolvableDependencies instances
that isn't the one to which they were added.

Previously, the above-described Gradle behaviour would result in
BootJar accessed the ResolvedConfiguration of a Configuration that may
not have yet been resolved. At best this would trigger Configuration
resolution and at worst it would fail. A failure could occur if the
configuration had been copied so that it could be made resolvable.
The afterResolve action would then try to access the
ResolvedConfiguration of the original Configuration. This would trigger
a resolution attempt that fails due to the original configuration being
marked as unresolvable.

This commit updates the afterResolve action in BootJar to check that
the ResolvableDependencies with which it is called matches the
ResolvableDependencies with which it was original registered. Only
when the two match, and therefore the configuration has actually been
resolved, does processing proceed.

Fixes gh-24072
2020-11-09 10:21:41 +00:00
Andy Wilkinson
c85cc33ca9 Fix main class resolution failure when loaded from config cache
See gh-22922
2020-10-25 08:05:59 +00:00
Andy Wilkinson
4a4fec6310 Avoid calling getProject() during BootBuildImage's execution
See gh-22922
2020-10-23 13:23:52 +01:00
Andy Wilkinson
806464edd1 Update BootBuildImage to support Gradle's configuration cache
See gh-22922
2020-10-23 12:34:24 +01:00
Andy Wilkinson
b1c4af4081 Update bootJar and bootWar to use new main class resolution mechanism
See gh-22922
2020-10-23 12:34:21 +01:00
Andy Wilkinson
c078a48064 Update BootRun to support Gradle's configuration cache
See gh-22922
2020-10-23 12:34:15 +01:00
Andy Wilkinson
d1f543fc1d Update BuildInfo to support Gradle's configuration cache
See gh-22922
2020-10-23 12:34:12 +01:00
Andy Wilkinson
83cfd3b2e6 Update BootWar to support Gradle's configuration cache
See gh-22922
2020-10-23 12:34:07 +01:00
Andy Wilkinson
081ef2d905 Update BootJar to support Gradle's configuration cache
See gh-22922
2020-10-23 12:34:04 +01:00
Andy Wilkinson
0aa0cba3f7 Fix content filters when excludeProjectDependencies() is used
Fixes gh-23763
2020-10-20 13:09:59 +01:00