Commit Graph

787 Commits

Author SHA1 Message Date
Andy Wilkinson 1e16c2f229 Merge branch '2.6.x' into 2.7.x
Closes gh-29686
2022-02-09 11:32:43 +00:00
Andy Wilkinson c0664efa86 Merge branch '2.5.x' into 2.6.x
Closes gh-29685
2022-02-09 11:32:32 +00:00
Mike Partridge 2e9dcdd96d Replace use of classifier with archiveClassifier
classifier has been deprecated so the docs should be using its
replacement, archiveClassifier, instead.

See gh-29611
2022-02-09 11:31:22 +00:00
Andy Wilkinson 41863d4b80 Merge branch '2.6.x' into 2.7.x
Closes gh-29680
2022-02-08 19:21:59 +00:00
Andy Wilkinson 358cdb33f7 Merge branch '2.5.x' into 2.6.x
Closes gh-29679
2022-02-08 19:21:48 +00:00
Andy Wilkinson 43ca2d2cb0 Access classpath lazily to allow later changes to be picked up
Previously, the classpath of bootJar, bootWar, and bootRun was
configured directly as a FileCollection derived from the main source
set's runtime classpath. This direct configuration meant that
subsequent changes to the main source set's runtime classpath may not
have been picked up.

This commit changes the configuration of the classpath to use a
Callable. This indirection allows subsequent changes to the main
source set's runtime classpath to be picked up as long as they
occur before Gradle calls the callable.

Closes gh-29672
2022-02-08 19:21:37 +00:00
Stephane Nicoll 980aa616c8 Fix build failure
See gh-29290
2022-01-07 17:58:15 +01:00
Stephane Nicoll 9821cdfd8b Remove deprecated code
Closes gh-29290
2022-01-07 14:42:14 +01:00
izeye 9a6c1c531d Test our Gradle plugin against Gradle 7.3.3
See gh-29161
2021-12-25 09:52:14 +01:00
Stephane Nicoll 8c9d398422 Test our Gradle plugin against Gradle 7.3.2
Closes gh-29093
2021-12-17 09:11:44 +01:00
Phillip Webb f3bcbca841 Update copyright year of changed files 2021-12-16 13:05:17 -08:00
Stephane Nicoll 5383de4fe1 Merge branch '2.6.x' into 2.7.x 2021-12-13 09:23:44 +01:00
Stephane Nicoll 32ecbb89d6 Merge branch '2.5.x' into 2.6.x 2021-12-13 09:23:33 +01:00
Stephane Nicoll 496cd3d2ba Polish
See gh-28999
2021-12-13 09:23:08 +01:00
Scott Frederick 8f57f0babb Add classpath index support for exploded war archives
Update the Maven and Gradle packaging for war files so that a
`classpath.idx` file is written into the archive that provides the
original order of the classpath, as was previously done for jar files.
The `WarLauncher` class will use this file when running as an exploded
archive to ensure that the classpath order is the same as when running
from the far war.

Fixes gh-19875
2021-12-09 16:41:49 -06:00
Andy Wilkinson af60a8a7cf Test our Gradle plugin against Gradle 7.3.1
Closes gh-28890
2021-12-02 10:29:22 +00:00
Phillip Webb beb68671bb Update copyright year of changed files 2021-11-24 10:23:32 -08:00
Andy Wilkinson 0074d621d0 Merge branch '2.5.x'
Closes gh-28754
2021-11-19 15:37:32 +00:00
Andy Wilkinson 015cf920da Name custom task inputs
Closes gh-28753
2021-11-19 15:35:39 +00:00
Andy Wilkinson c0d90dfa8f Merge branch '2.5.x'
Closes gh-28749
2021-11-19 13:36:01 +00:00
Andy Wilkinson c083e0b049 Avoid using temp before @TempDir has initialized it
Closes gh-28748
2021-11-19 13:35:30 +00:00
Andy Wilkinson 0aae9c26da Test our Gradle plugin against Gradle 7.3
Closes gh-28679
2021-11-15 12:47:51 +00:00
Andy Wilkinson 2a342ef416 Merge branch '2.5.x'
Closes gh-28662
2021-11-12 23:40:35 +00:00
Andy Wilkinson 5e4a502b2d Merge branch '2.4.x' into 2.5.x
Closes gh-28661
2021-11-12 20:31:25 +00:00
Andy Wilkinson 2cec3971d7 Prohibit unwanted dependencies in all modules not just starters
Closes gh-28658
2021-11-12 20:04:35 +00:00
Stephane Nicoll 98d3e99ac9 Merge branch '2.5.x'
Closes gh-28550
2021-11-08 08:29:56 +01:00
Stephane Nicoll 91f7ff3ba3 Merge branch '2.4.x' into 2.5.x
Closes gh-28549
2021-11-08 08:29:43 +01:00
slowjoe007 5a121197fc Fix typo
See gh-28548
2021-11-08 08:28:28 +01:00
Scott Frederick e84c1abb0f Prevent Docker volume name clashes in tests during parallel builds
See gh-28292
2021-10-21 15:07:15 -05:00
Phillip Webb e25f216eab Merge branch '2.5.x'
Closes gh-28425
2021-10-21 11:28:33 -07:00
Phillip Webb daf36dff55 Merge branch '2.4.x' into 2.5.x
Closes gh-28424
2021-10-21 11:27:29 -07:00
Phillip Webb 2f6651c3cb Don't use markdown syntax in javadoc or error messages
Closes gh-28408
2021-10-21 11:24:54 -07:00
Scott Frederick 871468931f Polish "Add option to customize cache volume names when building an image"
See gh-28292
2021-10-19 15:38:12 -05:00
Julian Liebig dc36346285 Add option to customize cache volume names when building an image
This commit adds configuration to the Maven and Gradle plugins to
allow specifying the names of build and launch cache volumes provided
to the CNB builder.

See gh-28292
2021-10-19 15:38:12 -05:00
Phillip Webb f4bd8956af Polish "Allow build info properties to be excluded"
Update the Maven plugin to use an alternative syntax to exclude
the info properties and apply some minor polishing.

See gh-27412
2021-10-13 21:12:45 -07:00
Vedran Pavic ea9faf8690 Allow build info properties to be excluded
Update Maven and Gradle plugins to allow build info properties to be
excluded.

Prior to this commit, the `BuildPropertiesWriter` would fail with an
NPE if the group, artifact, name or version properties were `null`.

This was specifically problematic with the Gradle plugin, since its
DSL allows `null` properties which would either be passed to the writer
or, in the case of `artifact`, converted into a string value of
"unspecified".

See gh-27412
2021-10-13 21:07:09 -07:00
Andy Wilkinson 1a505964ee Merge branch '2.5.x'
Closes gh-28207
2021-10-06 10:03:24 +01:00
Andy Wilkinson 1931104d13 Merge branch '2.4.x' into 2.5.x
Closes gh-28206
2021-10-06 09:57:19 +01:00
Vincent Ricard 873bca36c4 Replace latin locutions in the documentation
See gh-28141
2021-10-01 07:33:01 +02:00
Scott Frederick 64c49003aa Polish "Add option to create tags for a built image"
See gh-27613
2021-09-28 15:32:27 -05:00
Rafael Ceccone 66f44b0c7f Add option to create tags for a built image
This commit adds configuration to the Maven and Gradle plugins to
allow specifying multiple tag to be created that refer to the built
image.

See gh-27613
2021-09-28 15:32:27 -05:00
dreis2211 cf0fcafd13 Polish
See gh-27940
2021-09-21 08:08:29 +02:00
Scott Frederick 96238ba8b7 Expose default value for imageName in bootBuildImage task
Fixes gh-28040
2021-09-16 15:51:12 -05:00
Andy Wilkinson f530819d68 Merge branch '2.4.x' into 2.5.x
Closes gh-27966
2021-09-13 10:47:47 +01:00
Andy Wilkinson 273600bcdd Retain distinction between compile and runtime deps of optional deps
Previously, the optional configuration was added to the compile and
runtime classpaths of each source set and the the javadoc classpath
as well. This had a few disadvantages, the most notable of which is
that it meant that the configuration was ifrst resolved and then
the outcome of the resolution was added to the compile and runtime
classpaths. As a result, none of the attributes on the compile and
runtime classpaths were considered to influence variant selection.

This commit reworks the optional dependencies plugin so that the
compile and runtime classpaths of each source set are now configured
to extend from the optional configuration. This allows each
classpath configuration's attributes to influence the dependencies
that are selected from the optional configuration during resolution.
For example, when resolving the compile classpath, compile
dependencies (Usage.JAVA_API) will be selected and when resolving the
runtime classpath, runtime dependencies (Usage.JAVA_RUNTIME) will be
selected.

The above-described change means that runtime dependencies of an
optional dependencies will no longer leak into the compile classpath.
As a result of this, our Gradle plugin's test infrastructure has
been updated so that it no longer references runtime dependencies of
the Kotlin Gradle plugin at compile time.

Closes gh-27965
2021-09-13 10:47:14 +01:00
Andy Wilkinson fd2fbcb3c6 Merge branch '2.5.x'
Closes gh-27758
2021-08-18 18:28:34 +01:00
Andy Wilkinson 6d8ba3e8b1 Merge branch '2.4.x' into 2.5.x
Closes gh-27757
2021-08-18 17:56:32 +01:00
Andy Wilkinson ffbd28b60a Polish "Polish access modifiers for test classes"
See gh-27736
2021-08-18 17:52:42 +01:00
izeye 8a425dedfd Polish access modifiers for test classes
See gh-27736
2021-08-18 17:38:40 +01:00
Andy Wilkinson b4f0f29bff Test our Gradle plugin against Gradle 7.2
Closes gh-27732
2021-08-17 15:58:40 +01:00
Scott Frederick 2178c281e9 Polish "Add network option for image building"
See gh-27486
2021-08-12 17:08:52 -05:00
Jeroen Meijer 8e6d03b221 Add network option for image building
This commit adds configuration to the Maven and Gradle plugins to
allow specifying the network mode to be provided to the image
building goal and task.

See gh-27486
2021-08-12 17:08:52 -05:00
Andy Wilkinson 119fb6948d Test our Gradle plugin against Gradle 7.2-rc-3
Closes gh-27640
2021-08-12 15:26:50 +01:00
Andy Wilkinson c43c22283d Merge branch '2.5.x'
Closes gh-27621
2021-08-10 10:45:31 +01:00
Andy Wilkinson f19fff4c64 Merge branch '2.4.x' into 2.5.x
Closes gh-27620
2021-08-10 10:45:07 +01:00
Andy Wilkinson d4d1ca007e Mention productionRuntimeClasspath in the docs
Closes gh-27558
2021-08-10 10:44:57 +01:00
Andy Wilkinson 7610fe02c5 Test our Gradle plugin against 7.2-rc-2
Closes gh-27593
2021-08-09 09:50:07 +01:00
Stephane Nicoll 9826304e29 Merge branch '2.4.x' into 2.5.x
Closes gh-27557
2021-08-04 09:25:25 +02:00
izeye 9f44cefc56 Use deprecated mainClassName in Gradle test
See gh-27537
2021-08-04 09:23:52 +02:00
Andy Wilkinson cdad8e2b7f Merge branch '2.5.x' 2021-07-29 17:28:38 +01:00
Andy Wilkinson 85054723f0 Reinstate GradleProjectBuilder for compatibility with JDK17-ea32
See gh-27521
2021-07-29 17:22:59 +01:00
Andy Wilkinson 23c4674352 Merge branch '2.5.x'
Closes gh-27522
2021-07-29 12:24:54 +01:00
Andy Wilkinson ca5af2d456 Test our Gradle plugin against Gradle 7.2-rc-1
Closes gh-27521
2021-07-29 12:05:14 +01:00
Andy Wilkinson 04dc62904f Merge branch '2.4.x' into 2.5.x
Closes gh-27495
2021-07-26 15:23:17 +01:00
Andy Wilkinson 5d9da7206e Limit use of deprecated mainClassName in Gradle plugin tests
Closes gh-27320
2021-07-26 15:21:44 +01:00
Scott Frederick 9f001efa29 Adjust fat jar central directory to account for launch script
An upgrade to Apache Commons Compress allows the build plugins to write
the launch script to the fat jar as a proper preamble, making the file
compatible with more jar and zip tooling.

Fixes gh-22336
2021-07-19 15:02:42 -05:00
Scott Frederick a0b32251eb Split gradle test support into a separate module
See gh-25824
2021-07-16 12:52:39 -05:00
Andy Wilkinson 25234219ce Merge branch '2.5.x'
Closes gh-27365
2021-07-16 11:51:43 +01:00
dreis2211 be38ce3645 Disable Gradle plugin tests that fail on JDK 17
See gh-27328
2021-07-16 11:42:51 +01:00
Stephane Nicoll dc5acb0019 Remove deprecated code flagged for removal
Closes gh-27303
2021-07-14 11:50:01 +02:00
Scott Frederick 18c7c0af22 Add Paketo image building system tests
A new system test plugin is being made available for running test
suites that should be run less frequently than with every commit, such
as tests that verify Spring Boot compatibility with external
projects. CI pipeline configuration for running system tests is also
provided.

The first system tests verify the behavior of the Spring Boot image
building plugins when building images using Paketo buildpacks.

Closes gh-25824
2021-07-08 17:02:43 -05:00
Andy Wilkinson ff79787def Avoid using deprecated API to get Kotlin Plugin's version
Closes gh-27090
2021-07-08 10:45:09 +01:00
Andy Wilkinson c21791e671 Test our Gradle plugin against Gradle 7.1.1
Closes gh-27142
2021-07-07 17:57:14 +01:00
Phillip Webb dfbd82b838 Fix Kotlin 1.5.20 classpath issues
See gh-27086
2021-06-24 14:05:36 -07:00
Phillip Webb d44207161f Suppress Kotlin 1.5.20 deprecation warning
See gh-27086
2021-06-24 11:30:58 -07:00
Phillip Webb 2c518f1dff Merge branch '2.4.x' into 2.5.x 2021-06-23 21:02:05 -07:00
Phillip Webb a76e5c043e Update copyright year of changed files 2021-06-23 21:01:45 -07:00
Phillip Webb af37f59136 Merge branch '2.4.x' into 2.5.x
Closes gh-27056
2021-06-23 17:13:13 -07:00
Madhura Bhave b790c82732 Apply exclusions to existing war entries
Update `RepackageMojo` and supporting classes so that `exclusions`
on the repackage goal apply to both the contributed libraries and any
existing jar entries already contained in the original war.

Prior to this commit, exclusions would apply to contributed jars (for
example, those in `WEB-INF/lib-provided`) but not jars that were
packaged directly into `WEB-INF/lib` by the war plugin

Fixes gh-15808

Co-authored-by: Phillip Webb <pwebb@vmware.com>
2021-06-23 15:08:31 -07:00
Andy Wilkinson 07e7398d10 Include 6.9.x in version requirements message
Fixes gh-26952
2021-06-21 18:20:08 +01:00
Andy Wilkinson 8405df10b8 Merge branch '2.4.x' into 2.5.x
Closes gh-26997
2021-06-21 14:34:11 +01:00
Andy Wilkinson e18eb08222 Fix additional metadata locations with config cache
Previously, a project with a dependency on Spring Boot's configuration
processor would fail to build when the configuration cache is enabled
due to it accessing the Project during task execution.

Instead of accessing the project during task execution, this commit
updates the code to retrieve the resource locations from the matching
source set in advance. The locations are then stored in the action
that configures the compile task when needed.

Closes gh-26880
2021-06-21 14:31:04 +01:00
Andy Wilkinson a2772e288a Merge branch '2.4.x' into 2.5.x
Closes gh-26947
2021-06-17 17:27:56 +01:00
Andy Wilkinson cd808d2f18 Only get Kotlin plugin's version once we know we need it
Fixes gh-26946
2021-06-17 17:27:03 +01:00
Andy Wilkinson 6a51c272b9 Test our Gradle plugin against Gradle 7.1
Closes gh-26904
2021-06-14 21:01:06 +01:00
Andy Wilkinson 9e2339b5d0 Merge branch '2.4.x' into 2.5.x 2021-06-14 13:36:29 +01:00
Andy Wilkinson 16bfa669e1 Polish authors separators 2021-06-14 13:35:30 +01:00
Andy Wilkinson 5f26fd9ccb Merge branch '2.4.x' into 2.5.x
Closes gh-26891
2021-06-14 13:28:54 +01:00
Andy Wilkinson f6b7730dac Use Asciidoctor's revision line to provide document's version
Using the revision line means that the revision number is automatically
set. The revision number is then included by the HTML and PDF backends
in the standard location. In the HTML backend that's alongside the
list of authors. In the PDF backend that's on the title page.

Closes gh-26851
2021-06-14 13:24:01 +01:00
Andy Wilkinson de410b7621 Merge branch '2.4.x'
Closes gh-26828
2021-06-09 18:01:32 +01:00
Andy Wilkinson a1c5fcca58 Move common Asciidoctor configuration into our conventions
Closes gh-26620
2021-06-09 18:00:45 +01:00
Andy Wilkinson 03f8a46c80 Test our Gradle plugin against 7.1-rc-2
Closes gh-26825
2021-06-09 09:41:25 +01:00
Phillip Webb 4d62e47c5d Merge branch '2.3.x' into 2.4.x 2021-06-08 18:05:12 -07:00
Phillip Webb 703eaa71f4 Remove main class configuration fallback
Remove fallback code since we now require Gradle 6.8 and can depend
on the `getMainClass` method being present.

Closes gh-26794
2021-06-08 18:00:50 -07:00
Andy Wilkinson 87d35250a5 Test our Gradle plugin against 7.1-rc-1
7.1-rc-1 deprecates JavaExec's main property in favor of mainClass
which was introduced in Gradle 6.4. This commit updates some tests
to use mainClass rather than main that would otherwise have failed
due to deprecation warnings in their output.

Closes gh-26793
2021-06-07 13:35:52 +01:00
Stephane Nicoll aff1366731 Polish "Fix typo in 'Reacting to the Maven plugin' title"
See gh-26751
2021-06-04 09:51:48 +02:00
Abel Salgado Romero 9eea502c3e Fix typo in 'Reacting to the Maven plugin' title
See gh-26751
2021-06-04 09:46:47 +02:00
Scott Frederick f560e86f03 Write buildpack directories to builder layer
When a custom buildpack is provided for image building, the contents
of the buildpack directory, tgz file, or image are copied as tar
entries to a new layer in the ephemeral builder image. Prior to this
commit, only file entries from the buildpack source were copied as
builder layer tar entries; intermediate directory entries from the
source were not copied. This results in directories being created in
the builder container using default permissions. This worked on most
Linux-like OSs where the default permissions allow others-read
access. On some OSs like Arch Linux where the default directory
permissions do not allow others-read, this prevented the lifecycle
processes from reading the buildpack files.

This commit explicitly creates all intermediate directory tar entries
in the builder image layer to ensure that the buildpack directories
and files can be read by the lifecycle processes.

Fixes gh-26658
2021-06-02 14:09:53 -05:00
Phillip Webb 5258c26f90 Merge branch '2.4.x' 2021-05-27 13:15:19 -07:00
Phillip Webb 49c30854af Rename PRODUCTION_RUNTIME_CLASSPATH_NAME
Rename the now public constant for consistency with the JavaPlugin.

See gh-26686
2021-05-27 13:14:16 -07:00