Commit Graph

948 Commits

Author SHA1 Message Date
Scott Frederick dfab18c965 Add imagePlatform option for image building
An `imagePlatform` option for the Maven and Gradle image-building
goal/task can be used to specify the os/architecture of any
builder, run, and buildpack images that are pulled during image
building.

Closes gh-40944
2024-07-30 14:19:40 -05:00
Stéphane Nicoll 3e7412fe7e Merge branch '3.3.x'
Closes gh-41653
2024-07-30 11:23:48 +02:00
Stéphane Nicoll e05a846a1c Merge branch '3.2.x' into 3.3.x
Closes gh-41652
2024-07-30 11:23:39 +02:00
Stéphane Nicoll 59b47e336b Remove invalid checksum policy setting
This might be a copy/paste error as the checksum policy is used for
deploying and our integration tests do not do that.

Closes gh-41651
2024-07-30 11:20:44 +02:00
Stéphane Nicoll 8ef5540624 Merge branch '3.3.x'
Closes gh-41648
2024-07-30 10:58:38 +02:00
Stéphane Nicoll 397aeee9b6 Merge branch '3.2.x' into 3.3.x
Closes gh-41647
2024-07-30 10:58:31 +02:00
Stéphane Nicoll 05468def54 Tolerate module-info with AOT processing
This commit updates the Maven Plugin to tolerate projects that are using
the module path on the JVM and targeting native images with AOT.

Previously, the plugin compiled AOT sources directly to target/classes
and the presence of a module-info there is enough to trigger a
compilation on the module path.

With this change we now compile in a separate directory that contains
the generated AOT classes (typically CGLIB proxies). These are copied to
target/classes once compilation completes already.

The integration test also uses our parent, rather than relying on what
Maven provides. That's because older Maven versions provide a default
compiler plugin version that did not handle the module path correctly.

Closes gh-33383
2024-07-30 10:56:06 +02:00
Stéphane Nicoll 6ab053d823 Merge branch '3.3.x'
Closes gh-41642
2024-07-29 16:56:29 +02:00
Stéphane Nicoll a63a1fe6c5 Merge branch '3.2.x' into 3.3.x
Closes gh-41641
2024-07-29 16:56:18 +02:00
Stéphane Nicoll 47465f6ed5 Do not validate settings if publishing is disabled
This commit improves the Maven Plugin to only validate the publishing
settings if publishing is actually enabled.

Closes gh-29756
2024-07-29 16:55:02 +02:00
Phillip Webb fdd5d007f5 Merge branch '3.3.x' 2024-07-25 20:49:42 +01:00
Phillip Webb 28faf12062 Migrate plugins to javadoc asciidoctor macro
See gh-41605
2024-07-25 20:49:02 +01:00
Phillip Webb 84e2049fc5 Merge branch '3.3.x' 2024-07-25 18:25:23 +01:00
Phillip Webb fd58261b9d Revert "Migrate plugins to javadoc asciidoctor macro"
This reverts commit b63e1e7443.
2024-07-25 18:25:15 +01:00
Phillip Webb 7bbb5003db Merge branch '3.3.x' 2024-07-25 18:05:04 +01:00
Phillip Webb b63e1e7443 Migrate plugins to javadoc asciidoctor macro
See gh-41605
2024-07-25 18:03:37 +01:00
Phillip Webb 000600c68a Merge branch '3.3.x' 2024-07-22 18:41:53 +01:00
Phillip Webb 36b1214feb Merge branch '3.2.x' into 3.3.x 2024-07-22 18:30:45 +01:00
Phillip Webb 61dc82d836 Update copyright year of changed files 2024-07-22 18:16:19 +01:00
Scott Frederick 224b06982e Add support for untrusted CNB builders
A `trustBuilder` configuration option has been added to the Maven and
Gradle CNB integration image building goal and task. A known set of
builders published by Paketo, Heroku, and Google are trusted by default,
all other builders are untrusted by default.

Closes gh-41352
2024-07-11 13:51:54 -05:00
Andy Wilkinson 375b3b16a0 Remove APIs that were deprecated for removal in 3.4.0
Closes gh-41435
2024-07-10 13:31:21 +01:00
Scott Frederick 17c5538062 Merge branch '3.3.x' 2024-07-01 11:24:00 -05:00
Scott Frederick 70e14d648d Polish documentation headings
Title case should be used in all headings.
2024-07-01 11:23:41 -05:00
Scott Frederick 26b59ae912 Use Paketo tiny builder by default for JVM and native apps
Closes gh-40859
2024-06-28 11:45:54 -05:00
Andy Wilkinson 99904d0307 Merge branch '3.3.x'
Closes gh-41274
2024-06-28 16:01:46 +01:00
Andy Wilkinson 55ac058385 Merge branch '3.2.x' into 3.3.x
Closes gh-41273
2024-06-28 15:47:54 +01:00
Andy Wilkinson d71fdd9712 Make buildSrc's custom Gradle tasks consistently abstract
Closes gh-41272
2024-06-28 15:40:56 +01:00
Andy Wilkinson 1521258695 Merge branch '3.3.x'
Closes gh-41269
2024-06-28 12:13:38 +01:00
Andy Wilkinson ac8a3b6332 Merge branch '3.2.x' into 3.3.x
Closes gh-41268
2024-06-28 12:12:15 +01:00
Andy Wilkinson a195394be6 Merge branch '3.3.x' 2024-06-28 11:41:37 +01:00
Andy Wilkinson 7f2e8f85ae Merge branch '3.2.x' into 3.3.x 2024-06-28 11:40:48 +01:00
Andy Wilkinson 365fdfee45 Reduce scope of mavenOptional feature to only the Maven Plugin
Previously, the mavenOptional was added to every published module but it
was only used by spring-boot-maven-plugin. This commit reduces its scope
so that it only affects the Maven plugin. It also reworks the
implementation to reuse the existing optional configuration rather than
declaring a new mavenOptional configuration. Lastly, publication of
Gradle Module Metadata (GMM) has been disabled for
spring-boot-maven-plugin. This is seen as preferable to publishing the
metadata – which isn't really needed as it does not contain any useful
additional information – and having to suppress warnings about
incomplete mapping of GMM to pom metadata.

Closes gh-41263
2024-06-28 11:39:46 +01:00
Andy Wilkinson 2ed72c6e4d Correct syntax for plexus-utils exclusion
See 07442f8366
See gh-41248
2024-06-28 11:39:46 +01:00
Andy Wilkinson 13ab5618a6 Merge branch '3.3.x' 2024-06-27 13:08:38 +01:00
Andy Wilkinson 0df946ccad Fix botched merge of spring-boot-maven-plugin's build.gradle 2024-06-27 13:06:44 +01:00
Andy Wilkinson 5b7365b63b Merge branch '3.3.x'
Closes gh-41258
2024-06-27 10:25:32 +01:00
Andy Wilkinson b0d4f1d356 Merge branch '3.2.x' into 3.3.x
Closes gh-41257
2024-06-27 10:16:36 +01:00
Scott Frederick 9da2d1e089 Revert "Use Paketo tiny builder by default for JVM and native apps"
This reverts commit 6d2ebc0713.
2024-06-26 15:25:37 -05:00
Andy Wilkinson 654016af7f Move Docker-related test support into a separate module
See gh-41228
2024-06-26 19:47:35 +01:00
Andy Wilkinson 89a06608d2 Update spring-boot-maven-plugin to use docker-test plugin
See gh-41228
2024-06-26 19:46:29 +01:00
Scott Frederick 6d2ebc0713 Use Paketo tiny builder by default for JVM and native apps
Closes gh-40859
2024-06-26 13:42:23 -05:00
Andy Wilkinson 61ac0e32a1 Merge branch '3.3.x'
Closes gh-41250
2024-06-26 17:01:14 +01:00
Andy Wilkinson 2dd6c1c3a0 Merge branch '3.2.x' into 3.3.x
Closes gh-41249
2024-06-26 17:00:58 +01:00
Andy Wilkinson 07442f8366 Exclude plexus-utils in favor of Maven's build-in version
Closes gh-41248
2024-06-26 16:59:23 +01:00
Andy Wilkinson 23597cc744 Start work on Spring Boot 3.4 2024-06-20 19:50:32 +01:00
Phillip Webb 9dda006a18 Merge branch '3.2.x' 2024-06-19 22:55:00 -07:00
Phillip Webb 2a4582b084 Update copyright year of changed files 2024-06-19 22:54:40 -07:00
Phillip Webb 905d6b96d0 Merge branch '3.2.x'
Closes gh-41166
2024-06-19 22:30:58 -07:00
Andy Wilkinson 491f34d25c Improve container test code
Replace `DockerImageNames` with a enum and relocate it from the
`testcontainers` to `container` package. The enum now also
becomes a common location that we can use to apply container
configuration such as timeouts.

Closes gh-41164

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2024-06-19 20:10:03 -07:00
Piyal Ahmed e2cf638cd5 Add file extension to xref
See gh-41083
2024-06-12 10:45:07 +02:00
Scott Frederick 2df0c7961a Reorganize packaging and optimizing documentation
Documentation for native executables, CDS, and checkpoint/restore are
now under a common heading in the reference documentation, along with
sections on building container images. A few sections containing
prescriptive workflows have been moved from reference to how-to guides.
This consolidates and improves the consistency of recommendations on
how to package and run applications.

Closes gh-40977
2024-06-06 16:11:10 -05:00
Scott Frederick fccc4ec3b8 Merge branch '3.2.x'
Closes gh-40871
2024-05-22 08:36:35 -05:00
Scott Frederick 4e5cd2c2fd Fix default security options for bootBuildImage task
Fixes gh-39830
2024-05-22 07:56:15 -05:00
Scott Frederick 48632b212f Merge branch '3.2.x'
Closes gh-40819
2024-05-17 11:42:21 -05:00
Scott Frederick 7f2b917851 Merge branch '3.1.x' into 3.2.x
Closes gh-40818
2024-05-17 11:41:23 -05:00
Scott Frederick 70aceb21eb Relocate test CNB builder and buildpack
The test CNB builder and buildpack used in integration tests have moved
from a projects.registry.vmware.com registry to ghcr.io/spring-io. This
commit modifies tests to use the new location.

Closes gh-40800
2024-05-17 10:59:41 -05:00
Scott Frederick 95145b23ec Merge branch '3.2.x' 2024-05-16 22:19:13 -05:00
Scott Frederick d38c1e06b3 Ignore exceptions when deleting caches in bind cache tests
See gh-40760
2024-05-16 22:19:04 -05:00
Scott Frederick 5f4d7f41bc Merge branch '3.2.x'
Closes gh-40799
2024-05-16 17:38:07 -05:00
Scott Frederick cd441130bd Warn when image building workspace directories cannot be deleted
When the `buildWorkspace` location in the
`spring-boot:build-image` Maven goal or `bootBuildImage` Gradle
task is configured to use a local bind source, the location
is passed to the CNB lifecycle without further processing by
Spring Boot. The lifecycle is in control of creating any files
in the specified location. Spring Boot tries to remove the
directories at the specified location after an image is
successfully created, but should not fail the image build
if the lifecycle has created files or directories with
permissions that keep them from being deleted successfully.

Fixes gh-40760
2024-05-16 17:37:44 -05:00
Andy Wilkinson 50b197da55 Merge branch '3.2.x'
Closes gh-40793
2024-05-16 18:07:01 +01:00
Andy Wilkinson 493efd6798 Merge branch '3.1.x' into 3.2.x
Closes gh-40792
2024-05-16 18:06:32 +01:00
Andy Wilkinson f35ecfbdca Reduce and update the versions of Maven that we test against
Closes gh-40791
2024-05-16 18:05:24 +01:00
Andy Wilkinson d77fcf30fa Merge branch '3.2.x' 2024-05-16 17:22:36 +01:00
Andy Wilkinson feaccef3a4 Temporarily disable tests for image building with bind caches
See gh-40760
2024-05-16 17:22:02 +01:00
Moritz Halbritter d98987f11e Merge branch '3.2.x'
Closes gh-40701
2024-05-13 11:31:55 +02:00
Moritz Halbritter 364af04377 Merge branch '3.1.x' into 3.2.x
Closes gh-40700
2024-05-13 11:30:42 +02:00
Yanming Zhou 0e450d602d Use CollectionUtils.isEmpty() and StringUtils.hasLength()
See gh-40645
2024-05-13 11:26:56 +02:00
Moritz Halbritter 9bb981be11 Merge branch '3.2.x'
Closes gh-40625
2024-05-06 10:25:08 +02:00
Moritz Halbritter c47cdda824 Merge branch '3.1.x' into 3.2.x
Closes gh-40624
2024-05-06 09:51:39 +02:00
Moritz Halbritter 126927f462 Merge branch '3.2.x'
Closes gh-40499
2024-04-24 14:04:17 +02:00
Moritz Halbritter b416db4dee Merge branch '3.1.x' into 3.2.x
Closes gh-40498
2024-04-24 14:04:08 +02:00
Moritz Halbritter 2cb19f368e Polish "Remove unnecessary nesting of calls to String.format"
See gh-40494
2024-04-24 13:57:07 +02:00
Hyeon Sung 0cf15fcad0 Remove unnecessary nesting of calls to String.format
See gh-40494
2024-04-24 13:55:04 +02:00
Moritz Halbritter 00a10fdc52 Move Docker Compose and Testcontainers to separate section
See gh-38361
2024-04-17 14:05:52 +02:00
Andy Wilkinson 0ed6864d1d Merge branch '3.2.x'
Closes gh-40324
2024-04-11 16:54:46 +01:00
Andy Wilkinson 45e9412d9b Merge branch '3.1.x' into 3.2.x
Closes gh-40323
2024-04-11 16:54:33 +01:00
Andy Wilkinson baf5a7f130 Make includes configurable via a property
See gh-39837
2024-04-11 16:32:17 +01:00
Andy Wilkinson 2a6293940b Polish "Make excludes configurable via property"
See gh-39837
2024-04-11 16:31:24 +01:00
Matti Tahvonen 58fc8f8c01 Make excludes configurable via property
See gh-39837
2024-04-11 15:43:31 +01:00
Phillip Webb 3ed77ae5f3 Polish 2024-04-04 23:45:21 -07:00
Phillip Webb 10260c084b Rename Antora component from spring-boot to boot
Closes gh-40131
2024-03-28 13:21:27 -07:00
Moritz Halbritter 957facf1cc Merge branch '3.1.x' into 3.2.x
Closes gh-40117
2024-03-27 09:35:44 +01:00
Moritz Halbritter ff66036e90 Remove redundant Regex escapes
Closes gh-40116
2024-03-27 09:34:28 +01:00
Phillip Webb af0353ddd3 Remove anchor-rewrite.properties
Remove `anchor-rewrite.properties` now that we have `rewrite.adoc` to
replace them.

See gh-40062
2024-03-26 11:27:03 -07:00
Phillip Webb dab1afcc77 Fix anchor rewrites in preparation for migration to Antora
Update `anchor-rewrite.properties` to fix a few errors and remove
elements that no longer exist. This commit also fixes a few anchors
in some `.adoc` files.

See gh-40062
2024-03-26 11:18:27 -07:00
Moritz Halbritter 8724807628 Update documentation to reflect CDS work
Closes gh-39834
2024-03-26 11:27:47 +01:00
Moritz Halbritter 2d9b1ad592 Use xref for documentation links
Closes gh-33745
2024-03-26 10:11:47 +01:00
Phillip Webb 6bb6a798ce Set version to `true` in antora.yml to allow docs generation
See gh-33766
2024-03-25 08:52:51 -07:00
Phillip Webb 8ee20c8dae Migrate maven-plugin to Antora
See gh-33766
2024-03-20 15:21:56 -07:00
Moritz Halbritter 5a77122abe Create classpath argfile on windows for run tasks
Closes gh-17766
2024-03-19 14:08:14 +01:00
Andy Wilkinson 702cf75b21 Merge branch '3.2.x'
Closes gh-39934
2024-03-13 18:40:28 +00:00
Andy Wilkinson e2d53fa0e9 Ensure that Maven Plugin uses a consistent Framework dependency version
Fixes gh-39927
2024-03-13 18:38:38 +00: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
Phillip Webb f8a1dae835 Merge branch '3.2.x' 2024-02-21 15:27:57 -08:00
Phillip Webb 12de6aa46a Merge branch '3.1.x' into 3.2.x 2024-02-21 15:27:27 -08:00
Phillip Webb 2c4909a89a Update copyright year of changed files 2024-02-21 13:58:53 -08:00
Moritz Halbritter 7f55cae90f Merge branch '3.2.x' 2024-02-12 10:19:46 +01:00
Moritz Halbritter 4387b79831 Merge branch '3.1.x' into 3.2.x 2024-02-12 10:18:46 +01:00
Moritz Halbritter 8ffcfc9b77 Harmonize style of igored exceptions across the codebase 2024-02-12 10:14:20 +01:00