This commit reverts partially what was done in gh-49397 to let docker
tests have access to additional maven repositories. Unfortunately, maven
build executions with the Spring Boot Maven Plugin do not use the BOM
for dependency management. As such, if one of the dependency requires
a dependency that has not been prepared in the local repository, it will
need to be able to download it from the relevant repository.
This is the case with spring-core that the maven plugin depends on when
Spring Framework and Spring Boot do not use the same Micrometer version:
the build prepares the version that Spring Boot uses, but the build
execution attempts to download the one that Spring Framework relies on.
Closes gh-51266
MainClassFinder.findSingleMainClass(JarFile, ...) does not close the
JarFile; the caller owns the resource. FindMainClass passed a newly
opened JarFile without closing it, unlike sibling call sites that use
try-with-resources.
See gh-50949
Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
Previously, Spring Boot's Gradle plugin reacted to the Protobuf
plugin by configuring Protobuf's grpc plugin. This worked well for
projects using gRPC but went too far for those using Protobuf
without gRPC.
This commit dials the support back a little bit. Now, our recommended
gRPC defaults are only applied when Protobuf is configured with the
grpc plugin.
Closes gh-50822
Update `ProtobufPluginAction` to align the protoc version with
`protobuf-java` rather than `protobuf-java-util`. The util
jar is only required for server gRPC code.
See gh-50405
Signed-off-by: Dongliang Xie <dragonfsky@gmail.com>
This commit introduces an alternative to load layers configuration from
the classpath. This lets user package their custom layers XML at
META-INF/spring/layers/<name>.xml in a plugin dependency rather than
referencing a file path directly.
The name of the layers configuration can then be referenced using the
new `configurationName` property.
Closes gh-32466
There are two problems with the current approach:
1. The DSL uses dependsOn to try to inform Gradle of the dependency
relationship between tasks. This isn't recommended and inputs and
outputs should be used instead.
2. The generated build-info.properties file doesn't appear on the
classpath when running an application in an IDE, unless that IDE
delegates the execution to Gradle.
This commit addresses both of these shortcomings by configuring the
bootBuildInfo task's output to be a src dir of the main source set's
resources. This gives Gradle the preferred input- and output-based
view of the tasks' interdependencies. It also causes the generated
build-info.properties to appear on the classpath in IDEs that don't
delegate to Gradle. For example, the Eclipse Buildship plugin
automatically configures build/bootBuildInfo as a source folder on
the project's build path.
Closes gh-49547