71 Commits

Author SHA1 Message Date
Andy Wilkinson
961a34a5ee Merge branch '2.4.x'
Closes gh-25497
2021-03-04 19:15:03 +00:00
dreis2211
1ccd8dae8a Allow the project to be built with Java 16
See gh-25171
2021-03-04 18:54:56 +00:00
Scott Frederick
4be04b0ea2 Support image building with Maven and war packaging
This commit updates the Maven image building goal to support building
images from executable and non-executable war files.

Fixes gh-23823
2021-02-24 15:23:33 -06:00
Scott Frederick
76e42ff96f Correct grouping of custom buildpacks
This commit corrects the order.toml file that is generated and added
to the builder when building an image using custom buildpacks with the
Maven or Gradle plugin in order to support buildpacks that depend on
detection as a group.

Fixes gh-25378
2021-02-23 13:56:57 -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
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
Phillip Webb
d9f3e89395 Merge branch '2.4.x' 2021-02-01 22:11:17 -08:00
Phillip Webb
230b4ab2eb Merge branch '2.3.x' into 2.4.x 2021-02-01 22:10:52 -08:00
Phillip Webb
630d216430 Update copyright year of changed files 2021-02-01 22:10:24 -08:00
Phillip Webb
d8b849e00d Fix test that fails when building against SNAPSHOT
Update `WarIntegrationTests` do deal with a SNAPSHOT Spring Framwork
dependency.

See gh-23936
2021-02-01 22:09:04 -08:00
Phillip Webb
1eef2e1b46 Merge branch '2.4.x' 2021-02-01 19:47:11 -08:00
Phillip Webb
331c7b756b Merge branch '2.3.x' into 2.4.x 2021-02-01 19:46:49 -08:00
Phillip Webb
c404a50a2e Allow test to use snapshot/milestone repo
Update `spring-boot-maven-plugin` `settings.xml` so that milestone and
snapshot dependencies can be resolved.

See gh-23936
2021-02-01 19:45:11 -08:00
Phillip Webb
59b8fb5b49 Merge branch '2.4.x'
Closes gh-25079
2021-02-01 16:36:02 -08:00
Phillip Webb
db52bf3d7a Merge branch '2.3.x' into 2.4.x
Closes gh-25078
2021-02-01 16:35:46 -08:00
Phillip Webb
40c1748e3c Remove hardcoded versions from MavenBuild
Use the dependencies BOM to ensure versions used in the `MavenBuild`
test class are always aligned.

Closes gh-23936
2021-02-01 16:20:55 -08:00
Madhura Bhave
152698f2b2 Add support for creating layered war files with Maven
See gh-22821
2021-01-28 12:39:19 -08:00
Scott Frederick
4e603d9239 Merge branch '2.3.x' into 2.4.x
Closes gh-24538
2020-12-16 15:59:28 -06:00
Scott Frederick
e4d124dc45 Improve error message with Maven build-image and war packaging
Fixes gh-24522
2020-12-16 15:58:53 -06:00
Phillip Webb
30c27274e2 Merge branch '2.3.x'
Closes gh-24339
2020-12-04 18:31:55 -08:00
Phillip Webb
5f351a6983 Merge branch '2.2.x' into 2.3.x
Closes gh-24338
2020-12-04 18:21:57 -08:00
Scott Frederick
da2276e7d4 Use stable builder and run images in integration tests
Fixes gh-24183
2020-11-17 13:54:10 -06:00
Scott Frederick
59e0f7317e Avoid image pulls in integration tests
This commit sets the pull policy to `IF_NOT_PRESENT` where possible
in integration tests for the Maven and Gradle plugins to reduce
the number of times the default Paketo builder and run images are
pulled from Docker Hub.

Fixes gh-24113
2020-11-10 16:19:05 -06:00
Andy Wilkinson
21d97524d8 Merge branch '2.3.x'
Closes gh-24112
2020-11-10 17:38:30 +00:00
Andy Wilkinson
e6ab20b029 Merge branch '2.2.x' into 2.3.x
Closes gh-24111
2020-11-10 17:37:41 +00:00
Stephane Nicoll
b6fc0913cf Merge branch '2.3.x'
Closes gh-24104
2020-11-10 17:44:05 +01:00
Stephane Nicoll
515b18e142 Merge branch '2.3.x'
Closes gh-24108
2020-11-10 17:10:26 +01:00
Scott Frederick
f080bb6c25 Fix test that depended on snapshot version
A test case would fail to accurately capture the contents
of the layers.idx file unless the test project contained
at least one non-project snapshot dependency, which was only
true when the Spring Boot version was a snapshot.

See gh-23463
2020-10-29 19:40:13 -05:00
Phillip Webb
b39d1910bc Fix test failure caused by MavenBuild upgrades
See gh-23937
2020-10-28 14:07:27 -07:00
Phillip Webb
d43760ba5a Merge branch '2.3.x'
Closes gh-23938
2020-10-28 12:39:08 -07:00
Phillip Webb
d79c23ef89 Upgrade MavenBuild versions
Align versions with those in the main build.

Closes gh-23937
2020-10-28 12:37:30 -07:00
Sebastian Nohn
b3c4d5fe5c Upgrade to Log4j 2.13.3 in Maven tests
See gh-23935
2020-10-28 12:15:33 -07:00
Andy Wilkinson
3bfe1b00b5 Put module deps in app layer and make customization easier
Previously, when building a layered jar with Maven, dependencies
on modules in the same build were treated the same as any other
dependency, being included in the dependencies or snapshot dependencies
layer based on their version.

This commit updates the default layering when using Maven to include
dependencies on modules in the same build in the application layer by
default. The XML schema has also been updated to allow the layer to be
customized using new <includeModuleDependencies/> and
<excludeModuleDependencies/> elements rather than relying on including
and excluding them via a group:artifact:version pattern.

Closes gh-23463
2020-10-22 16:05:15 +01:00
Scott Frederick
0e7ab88491 Polish "Update default builder image"
See gh-23628
2020-10-12 17:07:33 -05:00
Emily Casey
461dc23c0c Update default builder image
This commit updates the default builder image used by the Maven
and Gradle plugins image-building goal and task to use the latest
Paketo builder image. The builder image is pulled from Docker Hub
instead of Google Container Registry by default.

See gh-23628
2020-10-12 17:06:42 -05:00
Scott Frederick
91acd957b2 Disable docker registry integration tests
A docker registry running in testcontainers behaves
differently in CI vs running locally. Disabling the tests for
now while working on getting them running reliably in CI.

See gh-21001
2020-10-07 18:18:21 -05:00
Scott Frederick
09b627d232 Add support for publishing docker images to a registry
This commit adds options to the Maven and Gradle plugins to publish
to a Docker registry the image generated by the image-building goal
and task.

The Docker registry auth configuration added in an earlier commit
was modified to accept separate auth configs for the builder/run
image and the generated image, since it is likely these images will
be stored in separate registries or repositories with distinct
auth required for each.

Fixes gh-21001
2020-10-07 16:51:33 -05:00
Andy Wilkinson
e240c180f3 Merge branch '2.3.x'
Closes gh-22831
2020-08-07 17:19:03 +01:00
Andy Wilkinson
181e3b34ba Isolate Maven Plugin's integration tests from repo.spring.io
Previously, the Maven plugin integration tests used a settings.xml file
that defined https://repo.spring.io/snapshot as a repository. This
allowed them to resolve snapshots of the plugin's Spring Framework
dependencies but it had the unfortunate side-effect of also allowing
them to resolve snapshots of other Spring Boot modules from Artifactory
rather than using those currently being built.

This commit replaces the repositories in settings.xml with a Gradle
task that resolves the necessary dependencies and populates a local
repository with the dependencies' jars and pom files. This is achieved
using a ComponentMetadataRule that creates a custom variant of each
dependency that includes its pom file, inspired by the example in
gradle/gradle/#11449. A configuration that extends the
runtimeClasspath configuration and select the custom variant via its
attribute is then used to resolve the jars and pom files of the runtime
classpath such that they can then be used to populate the local
repository.

Closes gh-22828
2020-08-07 17:18:47 +01:00
Scott Frederick
f247fec310 Merge branch '2.3.x'
Closes gh-22735
2020-08-04 15:30:17 -05:00
Scott Frederick
21b2dd2740 Allow empty env entries when building an image
Prior to this commit, an entry in the environment map provided to the
build plugin image building goal or task that had a null value would
result in a failure with a message that was difficult to diagnose.

This commit treats env map entries with a null value as an empty
entry to prevent the failure and also make it easier to provide an
explicit empty entry in the Maven XML.

Fixes gh-22703
2020-08-04 15:29:29 -05:00
Madhura Bhave
41f5ba9077 Switch layering on by default
Closes gh-20983
2020-08-03 17:04:20 -07:00
Scott Frederick
6119d69679 Add runImage option for image building
This commit adds a runImage property to the Maven plugin build-image
goal and the Gradle bootBuildImage task. The property allows the user
to override the run image reference provided in the builder metadata
with an alternate run image. The runImage property can be specified
in the build file or on the command line.

Fixes gh-21534
2020-06-15 16:08:56 -05:00
Scott Frederick
28749e7fbb Update CNB buildpack Java version env variable
Prior to this commit, the build tool plugins set the environment
variable BP_JAVA_VERSION when invoking the CNB builder to set the
version of the JDK/JRE that the builder should use in the created
image.

With CNB API 0.3, the convention changed the name of this environment
variable to BP_JVM_VERSION. This commit updates the build tool
plugins to match the newer convention.

See gh-21273
2020-05-08 17:07:51 -05:00
Scott Frederick
35bc82a693 Use CNB creator all-in-one lifecycle
This commit modifies the buildpack platform invocation logic used by
the build plugins to invoke the single creator lifecycle introduced in
the CNB API 0.3, instead of invoking discrete lifecycle phases
separately. It also removes support for CNB API 0.2.

Fixes gh-21273
2020-05-08 17:03:47 -05:00
Scott Frederick
f3d717e97a Use paketo-buildpacks/builder as default builder
This commit changes the default builder image from
`cloudfoundry/cnb:bionic-platform-api-0.2` to
`gcr.io/paketo-buildpacks/builder:base-platform-api-0.3`. It also
uses a `paketo-buildpacks/builder` image instead of a
`cloudfoundry/cnb` image to test compatibility with lifecycle v2
and uses paketo naming instead of cloudfoundry when mocking builder
interactions.

Some adjustments to lifecycle phases were also made to align more
closely with the pack CLI.

Fixes gh-21066
2020-04-29 14:28:25 -05:00
Phillip Webb
ad1248e4ec Replace "folder" with "directory"
Consistently use the term "directory" instead of "folder"

Closes gh-21218
2020-04-28 19:20:24 -07:00
dreis2211
5eb5bf0a2d Polish
See gh-21009
2020-04-25 08:54:47 +02:00
Phillip Webb
65672a1150 Use a more compact layers.idx format
Update the `layers.idx` format so that it is more compact and can be
parsed by third-parties as YAML.

Closes gh-20860
2020-04-06 19:18:22 -07:00
Madhura Bhave
4e3cdf936f Support flat jar layering with Maven
Update the Maven plugin so that layered jars now use the regular "flat"
format. The layers.idx file now describes which layer each file should
be placed.

See gh-20813

Co-authored-by: Phillip Webb <pwebb@pivotal.io>
2020-04-03 00:34:27 -07:00