Commit Graph

3113 Commits

Author SHA1 Message Date
Phillip Webb 3481107ff7 Update copyright year of changed files 2024-10-18 10:48:29 -07:00
Moritz Halbritter ce106eb43c Remove calls to deprecated Project.getBuildDir() in Gradle files
Closes gh-42739
2024-10-17 17:46:17 +02:00
Moritz Halbritter a3060652f8 Call String.toLowerCase and .toUppercase with explicit locale
Closes gh-42719
2024-10-17 13:20:39 +02:00
Phillip Webb 41ae973d16 Update copyright year of changed files 2024-10-16 13:08:37 -07:00
Stéphane Nicoll b0dd42e9b9 Transform Maven settings with proper plugin repository tag
This commit adapts d44e7c9 to transforms plugin repositories using the
correct root tag. Previously, they were transformed with the regular
<repository> tag, which is invalid.

Closes gh-42687
2024-10-15 10:39:59 +02:00
Phillip Webb d342eefa27 Use Sync task rather than Copy
See gh-42333
2024-10-01 17:19:52 -07:00
Phillip Webb 05b4edfd2c Use `ifeval` block for Commercial/OSS documentation
See gh-42333
2024-09-30 15:56:40 -07:00
Stéphane Nicoll ab968494e6 Document how to handle the manifest in a native image with Maven
Closes gh-42412
2024-09-30 10:55:58 +02:00
Phillip Webb d44e7c9af2 Dynamically populate repositories used in Ant/Maven integration tests
Update build scripts and tests so that repository settings are copied
dynamically from the build.

See gh-42333
2024-09-27 17:33:00 -07:00
Phillip Webb 7d8507d186 Polish 2024-09-27 17:31:24 -07:00
Phillip Webb c347ccaa76 Attempt to fix system tests following repository updates
See gh-42333
2024-09-27 12:17:29 -07:00
Yanming Zhou 72d68a2cb8 Remove duplicated dependency
See gh-42442
2024-09-25 13:56:01 +02:00
Phillip Webb ad72411e2b Apply conventions plugin to all subprojects
Closes gh-42438
2024-09-24 14:26:32 -07:00
Phillip Webb eafe61c4ca Backport upgrade to Gradle 8.10.1
Cherry-pick commits d756bf4e86, 083ac67d13 and 162c929a80 to
upgrade to Gradle 8.10.1.

Closes gh-42433
2024-09-24 12:55:29 -07:00
arefbehboudi 0d3fceec5d Polish
See gh-42413
2024-09-22 17:45:59 -07:00
Andy Wilkinson 1240c59482 Only configure plugin classpath where it's needed
When spring-boot-gradle-plugin is using GradleRunner, it needs to be
configured with a custom plugin classpath to account for the fact
that our Gradle plugin is on the classpath of the system classloader
but some of the other plugins would only be available on a
Gradle-created classloader. This imbalance cause class loading
problems as code in spring-boot-gradle-plugin can't see types at
runtime that are only available on the Gradle-created classloader.

To overcome this, we need to configure the GradleRunner with a custom
plugin classpath that contains both spring-boot-gradle-plugin and all
of the other plugins that are used in its various integration tests.
Previously, this was done in GradleBuild that's used by both
spring-boot-gradle-plugin and spring-boot-image-tests. This caused
a problem as spring-boot-image-tests does not have the
above-described problem and trying to correct it did not work leaving
tests that use spring-boot-gradle-plugin unable to see other plugins
such that the native image plugin.

This commit reworks the customization of the plugin classpath so that
it's only done in spring-boot-gradle-plugin's integration tests.

Closes gh-42338
2024-09-18 14:53:54 +01:00
Stéphane Nicoll 242803d59b Polish "Replace Configuration fully qualified name by constant"
See gh-42311
2024-09-16 09:01:36 +02:00
mushroom528 9bcfc72307 Replace Configuration fully qualified name by constant
See gh-42311
2024-09-16 09:01:23 +02:00
Andy Wilkinson 9a74437fbc Delete unused javadoc CSS file
Closes gh-42187
2024-09-09 13:52:23 +01:00
Phillip Webb f3645bba13 Update copyright year of changed files 2024-09-03 21:04:26 -07:00
Moritz Halbritter e7d6bd6ccd Test spring-boot-maven-plugin against Maven 3.9.9
Closes gh-42097
2024-09-03 14:29:49 +02:00
Johnny Lim a8452b54b5 Polish
See gh-42069
2024-09-01 18:50:38 -07:00
Phillip Webb 8c1d9872d2 Fix support for large zip files
Update `spring-boot-loader` to support large zip files by correctly
dealing with unsigned ints.

Fixes gh-42012
2024-09-01 15:13:46 -07:00
Phillip Webb cc2dc558f1 Don't report already migrated properties when has group
Refine the fix adding commit 962936370a so that items with a group
are correctly checked.

Fixes gh-42068
2024-08-31 11:18:47 -07:00
Stéphane Nicoll 1822b2fade Include spring-boot-starter-parent in Integration tests repository
This commit makes sure that integration tests for the Maven Plugin have
access to the current "spring-boot-starter-parent" pom and its
hierarchy as new integration tests rely on that.

Closes gh-42000
2024-08-22 16:46:52 +02:00
Andy Wilkinson 0b24ee8571 Improve loading of jar entry certificates
Co-Authored-By: Phillip Webb <phil.webb@broadcom.com>
2024-08-22 10:56:25 +01:00
Scott Frederick 21b15558a2 Use classpath index when building classpath in PropertiesLauncher
Fixes gh-41719
2024-08-20 15:47:44 -05:00
Phillip Webb f1987e6f8b Update copyright year of changed files 2024-08-19 16:45:34 -07:00
Christoph Dreis 393ec8ae51 Fix duplicate words
See gh-41916
2024-08-19 09:44:29 +02:00
rajin c808d44c11 Register JarUrlClassLoader as parallel capable
See gh-41665
2024-08-15 11:11:18 +01:00
Andy Wilkinson cc88a1db97 Test Gradle Plugin against Gradle 8.10
Closes gh-41870
2024-08-15 11:07:15 +01:00
Andy Wilkinson e9da0c237e Correct grammar in 'Running your Application with Maven'
Closes gh-41868
2024-08-15 10:38:57 +01:00
Moritz Halbritter 1d45016d8c Upgrade to spring-javaformat 0.0.43
Closes gh-41853
2024-08-14 16:32:41 +02:00
Stéphane Nicoll 200fc15b5d Detect backup jar when the package lifecycle is forked
Previously, if a classifier was set and build-image was executed from
the command-line, the build will fail as the plugin was unable to find
the original jar. This is because it relies on the attached artifacts
of the project, and those are not set when package has run as part of
a forked lifecycle.

This commit makes sure that the backup file is found by convention
first, the same way it is done for the target file.

Closes gh-26721
2024-07-31 17:01:00 +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 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 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
Andy Wilkinson 4ee24bf9bd Polish "Add rule to prevent calls to Objects.requireNonNull()"
See gh-41611
2024-07-29 11:41:26 +01:00
Andy Wilkinson 5f666eec5b Reduce warnings reported by Eclipse
Closes gh-41598
2024-07-25 14:55:00 +01:00
Andy Wilkinson f9f530ddaa Remove method references to improve compatibility
The use of method references requires the referenced method to be
present even if it isn't called. This made it impossible for Gradle
to remove the deprecated methods as it would break our plugin.
By switching the lambdas, the methods only have to be present when
they're called which will only happen with Gradle 8.2 and earlier.

Closes gh-41599
2024-07-24 19:22:05 +01:00
Phillip Webb 61dc82d836 Update copyright year of changed files 2024-07-22 18:16:19 +01:00
Andy Wilkinson f702230c12 Test Gradle plugin against Gradle 8.9
Closes gh-41454
2024-07-12 07:31:24 +01:00
Andy Wilkinson d71fdd9712 Make buildSrc's custom Gradle tasks consistently abstract
Closes gh-41272
2024-06-28 15:40:56 +01:00
Sébastien Deleuze a6f1bb9590 Update Kotlin DSL examples of bootBuildImage to be additive
See gh-41173
2024-06-28 13:47:42 +02: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 d2f74426f7 Work around bug in Gradle's Eclipse model
The model incorrectly marks the Gradle API and all of its
dependencies as test dependencies, making them unavailable in Eclipse
to code in src/main/java. We work around this by modifying the
classpath container to remove the test attribute from the
dependencies that should be available to main code.

See gh-41228
2024-06-27 12:58:36 +01:00
Andy Wilkinson 4515c882c7 Merge branch 'gh-41228' into 3.2.x
Closes gh-41228
2024-06-27 09:55:59 +01:00
Phillip Webb 962936370a Don't report already migrated properties
Update `PropertiesMigrationReporter` so that already migrated properties
are not reported. Prior to this commit, if a deprecated property was
replaced by a property that could bind with the name relaxed name it
would be reported. For example: `test.someproperty` being replaced with
`test.some-property`.

In order to check the actual underlying property name, the
`PropertySourceOrigin` class has been updated so that it is always
returned, even if another `Origin` is available.

Fixes gh-35774
2024-06-26 16:24:32 -07:00
Andy Wilkinson 654016af7f Move Docker-related test support into a separate module
See gh-41228
2024-06-26 19:47:35 +01:00