Commit Graph

192 Commits

Author SHA1 Message Date
Andy Wilkinson
03754cb2d6 Merge branch '3.2.x'
Closes gh-40098
2024-03-25 11:03:30 +00:00
Andy Wilkinson
0ec5eab8af Merge branch '3.1.x' into 3.2.x
Closes gh-40097
2024-03-25 10:42:14 +00:00
Andy Wilkinson
aee88115ea Test Gradle plugin against Gradle 8.7
This commit includes some changes to test Gradle scripts to avoid
Gradle 8.7's new deprecation warning about URI conversion.

Closes gh-40093
2024-03-25 10:24:21 +00:00
Moritz Halbritter
9411a4ce99 Adjust defaults for ExtractCommand
It now extracts the contents of the JAR in a folder named after the JAR
without the extension. It now also checks if the folder is empty.
There's a new --force option to skip those checks.

The "runner.jar" is now named like the uber JAR from which the
extraction has been started.

See gh-38276
2024-03-12 11:52:33 +01:00
Moritz Halbritter
793aca60d2 Implement extract and list-layers command
Adds a new jarmode called 'tools'. This provides two commands,
'extract' and 'list-layers'. list-layers is the same as list from
the layertools.

extract is able to extract the JAR in four different modes:

- CDS compatible extraction with libraries in a lib folder and a runner
.jar
- CDS compatible as above, but with layers
- Launcher based
- Launcher based with layers. This is essentially the same as extract
  from the layertools

The commands in layertools have been deprecated in favor of the commands
in 'tools'.

This also changes the behavior of layers.enabled from the Gradle and
Maven plugin: before this commit, layers.enabled prevents the inclusion
of the layer index file as well as the layertools JAR.
After this commit, layers.enabled only prevents the inclusion of the
layer index file.

layer.includeLayerTools have been deprecated in favor of includeTools,
and the layertools JAR has been renamed to tools.

Closes gh-38276
2024-03-07 13:34:13 +01:00
Andy Wilkinson
08a4a836aa Merge branch '3.1.x'
Closes gh-38233
2023-11-06 14:26:09 +00:00
Andy Wilkinson
b01235e68d Copy attributes from runtimeClasspath to productionRuntimeClasspath
Fixes gh-38209
2023-11-06 11:50:27 +00:00
Phillip Webb
33c5e1269a Write signature files to uber jars to for Oracle Java 17 verification
Update Gradle and Maven plugins to write an empty `META-INF/BOOT.SF`
file whenever there is a nested signed jar.

This update allows Oracle Java 17 to correctly verify the nested JARs.
The file is required because `JarVerifier` has code roughly equivalent
to:

	if (!jarManifestNameChecked && SharedSecrets
			.getJavaUtilZipFileAccess().getManifestName(jf, true) == null) {
    	throw new JarException("The JCE Provider " + jarURL.toString() +
    		" is not signed.");
	}

The `SharedSecrets.getJavaUtilZipFileAccess().getManifestName(jf, true)`
call ends up in `ZipFile.getManifestName(onlyIfSignatureRelatedFiles)`
which is a private method that we cannot override in our `NestedJarFile`
subclass. By writing an empty `.SF` file we ensure that the `Manifest`
is always returned because there are always "signature related files".

Fixes gh-28837
2023-10-16 16:19:16 -07:00
Andy Wilkinson
d6a9295c26 Allow additional build info properties to have provided values
Closes gh-37889
2023-10-16 18:15:42 +01:00
Phillip Webb
55b5610dd9 Add Maven and Gradle option for the loader implementation to use
Add properties to the Maven and Gradle plugins so that users can
switch between the two loader modules.

See gh-37669
2023-10-03 15:40:42 -07:00
Phillip Webb
c22548982a Relocate launcher classes
Create alternative launcher classes under the package
`org.springframework.boot.loader.launch` and use them in favor
of the previous location.

This update is designed to improve compatibility with future
changes in the loader.

Closes gh-37667
2023-10-03 14:53:04 -07:00
Andy Wilkinson
bebca55a8f Add testAndDevelopmentOnly configuration
Closes gh-35436
2023-09-28 13:24:34 +01:00
Scott Frederick
d37e9424a2 Merge branch '3.1.x'
Closes gh-37589
2023-09-26 14:07:16 -05:00
Scott Frederick
4f8684fd69 Merge branch '3.0.x' into 3.1.x
Closes gh-37588
2023-09-26 14:07:05 -05:00
Scott Frederick
a03e3320a6 Merge branch '2.7.x' into 3.0.x
Closes gh-37587
2023-09-26 14:06:50 -05:00
Scott Frederick
aeeb5cf1f8 Apply Gradle fileMode and dirMode consistently in jar and war archives
Fixes gh-37496
2023-09-26 13:49:19 -05:00
Scott Frederick
e80f743648 Merge branch '3.1.x'
Closes gh-37551
2023-09-22 11:37:00 -05:00
Scott Frederick
3803bd9af9 Merge branch '3.0.x' into 3.1.x
Closes gh-37550
2023-09-22 11:32:28 -05:00
Scott Frederick
7322c078c4 Merge branch '2.7.x' into 3.0.x
Closes gh-37549
2023-09-22 11:32:07 -05:00
Scott Frederick
98bfaf0412 Remove compatibility blocks from Gradle plugin integration tests
Closes gh-37453
2023-09-22 11:28:12 -05:00
Scott Frederick
7de770f6a1 Add support for security options in CNB builder container config
Closes gh-37479
2023-09-20 13:43:36 -05:00
Scott Frederick
4433fcd1f2 Add support for build workspace option when building images
Closes gh-37478
2023-09-20 13:43:35 -05:00
Andy Wilkinson
44bc47d96d Merge branch '3.1.x'
Closes gh-37381
2023-09-14 11:03:25 +01:00
Andy Wilkinson
dfb95329fd Merge branch '3.0.x' into 3.1.x
Closes gh-37380
2023-09-14 11:03:08 +01:00
Andy Wilkinson
a795065555 Polish "Lazily query attributes when copying from base configuration"
See gh-37343
2023-09-14 10:32:05 +01:00
Andy Wilkinson
f45a32d911 Merge branch '3.1.x'
Closes gh-37175
2023-09-01 14:18:23 +01:00
Andy Wilkinson
a84ee2fb12 Merge branch '3.0.x' into 3.1.x
Closes gh-37174
2023-09-01 14:17:59 +01:00
Andy Wilkinson
3ab1dfb9dc Merge branch '2.7.x' into 3.0.x
Closes gh-37173
2023-09-01 14:17:40 +01:00
Andy Wilkinson
a77863245d Polish "Use project.getLayout().getBuildDirectory() instead of getBuildDir()"
See gh-37167
2023-09-01 14:15:33 +01:00
Scott Frederick
c17ecf0f0b Add support for caching to bind mounts when building images
When building an image using the Maven `spring-boot:build-image` goal or
the Gradle `bootBuildImage` task, the build and launch caches can be
configured to use a bind mount as an alternative to using a named
volume.

Closes gh-28387
2023-08-21 15:04:39 -05:00
Andy Wilkinson
d6192a0fa1 Merge branch '3.0.x'
Closes gh-35708
2023-06-02 15:18:13 +01:00
Andy Wilkinson
5a793a6d49 Merge branch '2.7.x' into 3.0.x
Closes gh-35707
2023-06-02 15:17:35 +01:00
Andy Wilkinson
5623fe3b94 Test Gradle plugin against Gradle 8.2-rc-1
Closes gh-35699
2023-06-02 13:23:36 +01:00
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
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
Andy Wilkinson
d5756db54c Stop using Native Build Tools "requiredVersion" configuration option
Closes gh-34840
2023-04-14 11:55:20 +01:00
Phillip Webb
8d2f550f8c Merge branch '3.0.x' 2023-04-10 21:14:42 -07:00
Phillip Webb
3ba3558cff Merge branch '2.7.x' into 3.0.x 2023-04-10 21:14:34 -07:00
Phillip Webb
3e9a136143 Polish gradle formatting 2023-04-10 21:14:09 -07: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
Andy Wilkinson
03dd666818 Merge branch '2.7.x' into 3.0.x
Closes gh-34460
2023-03-03 10:27:32 +00:00
Andy Wilkinson
4f7e038f14 Test Gradle plugin against Gradle 8.0.1
Closes gh-34457
2023-03-03 10:21:26 +00:00
Andy Wilkinson
443d80ce6e Polish
See gh-32924
2022-11-04 17:23:01 +00: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
519250cacf Polish Gradle tasks for AOT processing
Closes gh-32946
2022-11-01 16:42:26 +00: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