Commit Graph

291 Commits

Author SHA1 Message Date
Andy Wilkinson c64649a6d9 Enable unchecked compilation warnings
See gh-21271
2020-06-16 12:50:44 +01: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
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
Phillip Webb 3ca896e63f Polish 2020-04-07 12:10:49 -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
Phillip Webb 7bc7d86ad4 Refine layer customization for Maven and Gradle
Simplify layer customization logic for both Maven and Gradle and
refactor some internals of the Gradle plugin.

Both Maven and Gradle now use a simpler customization format that
consists of `application`, `dependencies` and `layer order` sections.
The `application`, `dependencies` configurations support one or more
`into` blocks that are used to select content for a specific layer.

Closes gh-20526
2020-04-03 00:03:21 -07:00
Stephane Nicoll 6aa3461611 Version layers configuration xsd
This commit provides a versioned xsd for the layers configuration of the
Maven plugin. The version starts at `2.3` to match with the Spring Boot
feature release in which this was introduced.

Closes gh-20663
2020-03-24 15:55:30 +01:00
Phillip Webb 0717de723f Polish 2020-03-23 20:03:44 -07:00
Phillip Webb 9a33a723fe Update copyright year of changed files 2020-03-23 14:15:08 -07:00
Madhura Bhave 952e529787 Rename "classes" to "application" in custom layer configuration
Closes gh-20539
2020-03-23 10:44:03 -07:00
Scott Frederick 44f7508825 Fix BuildImageMojo javadoc. 2020-03-17 19:12:47 -05:00
Scott Frederick 08e96427de Add command-line properties for Maven build-image options
This commit adds support for setting the image name and builder
parameters of the Maven spring-boot:build-image goal using command-line
properties as an alternative to plugin configuration in pom.xml. Per
Maven conventions, a value in pom.xml configuration will override a
command-line property when both are provided.

Fixes gh-20520
2020-03-17 18:40:37 -05:00
Madhura Bhave fb8b531bfd Polish 2020-03-16 17:45:56 -07:00
Madhura Bhave 84b2e8c308 Rename classes package to application
Closes gh-20526
2020-03-16 16:03:29 -07:00
Andy Wilkinson c4a55a5fb4 Fail fast when attempting to repackage a reproducible war
Maven's war plugin does not support reproducible builds, resulting in
the entries in the war file not being written in a consistent order
from build to build.

Closes gh-20176
2020-03-16 20:29:37 +00:00
Andy Wilkinson ca202ad59f Support Maven's outputTimestamp when repackaging jars and wars
Closes gh-20176
2020-03-16 17:19:52 +00:00
Madhura Bhave e49e62df5c Add support for customizing layers in Maven
This commit adds an additional 'layers/configuration' property that can
be used to refer to a separate layers configuration file. This separate
file defines:

* The layers and their order of precedence,
* How libraries are handled using filters that match against the
coordinates of each library, and
* How classes are handled using filters that match against the location
of the entry

An XSD to validate the XML configuration file is available.

Closes gh-20295

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
2020-03-12 14:50:08 +01:00
Scott Frederick 509a1f1d41 Configure buildpack to use target Java version
With this commit, the Maven `spring-boot:build-image` goal and the
Gradle `bootBuildImage` task will configure the OpenJDK buildpack
to use the same JRE version as the project's target version,
provided the buildpack Java version is not explicitly set in the
build configuration.

Fixes gh-20172
2020-02-25 15:11:42 -06:00
Scott Frederick 23e781033c Merge branch '2.2.x'
Closes gh-20244
2020-02-20 14:43:55 -06:00
Scott Frederick 625b40aa90 Prefer arguments in POM over spring-boot.run.arguments
This commit changes the order of precedence for the `arguments` property
of the AbstractRunMojo so that values specified in the POM override
values provided on the command line using `spring-boot.run.arguments`.
This brings the `arguments` property in line with all other Mojo
parameters.

Fixes gh-20024
2020-02-20 13:09:20 -06:00
Madhura Bhave 15cd590f7f Allow users to opt out of including the layer tools in a layered jar
For Maven, the layer configuration is now an additional configuration
option instead of a layout type.

Closes gh-19866
2020-02-19 17:28:27 -08:00
Scott Frederick 191dce3f5e Set Spring Boot version in ephemeral builder
This commit adds a `createdBy` structure to the metadata of the ephemeral
builder container image that identifies Spring Boot as the creator of the
image, along with the Spring Boot version.

See gh-20126
2020-02-12 13:31:21 -06:00
Stephane Nicoll 3229142188 Merge branch '2.2.x'
Closes gh-20121
2020-02-11 13:50:54 +01:00
Stephane Nicoll 765b2178d1 Document spring-boot.run.arguments behaviour with multiple arguments
Closes gh-19998
2020-02-11 13:39:10 +01:00
Johnny Lim e6d5f5a271 Polish
See gh-19995
2020-02-01 09:24:20 +01:00
Andy Wilkinson 54b3f480b4 Use posix long names when creating tar archive for image building
Fixes gh-19964
2020-01-30 13:31:27 +00:00
Stephane Nicoll 5410148f79 Improve documentation of 'image' parameter of Maven Plugin
Closes gh-19950
2020-01-27 20:56:42 +01:00
Stephane Nicoll 331ebe90e0 Restore @since on build-image parameters 2020-01-23 16:47:03 +01:00
Stephane Nicoll 63019ab3f1 Add documentation for Maven plugin's build-image support
Closes gh-19830
2020-01-23 16:35:45 +01:00
Stephane Nicoll 105db66553 Polish 2020-01-23 14:04:19 +01:00
Stephane Nicoll 95be419527 Use Class.forName rather than ClassLoader.loadClass
This commit changes uses of ClassLoader.loadClass to Class.forName for
consistency with what was initiated in #19342 and better compatibility
with GraalVM.

Closes gh-19824
2020-01-23 10:47:53 +01:00
Phillip Webb e28338d6cd Rename spring-boot-cloudnativebuildpack
Rename the `spring-boot-cloudnativebuildpack` module to
`spring-boot-buildpack-platform` and update the the package
name to `org.springframework.boot.buildpack.platform`.

Closes gh-19851
2020-01-22 11:01:32 -08:00
Phillip Webb cb4928ad51 Add build-image support to the maven plugin
Add a new `build-image` goal to the Maven plugin to allow Docker images
to be create via using the cloud native buildpack.

See gh-19830
2020-01-20 23:48:47 -08:00
Scott Frederick 8f102aee68 Remove deprecated 2.2 code
See gh-19699
2020-01-16 14:44:52 +01:00
Phillip Webb 8fde088574 Add layered jar layout support to the maven plugin
Update the Maven plugin with a new `LAYERED_JAR` layout option.

See gh-19768
2020-01-15 23:33:29 -08:00
Andy Wilkinson ce99db1902 Port the build to Gradle
Closes gh-19609
Closes gh-19608
2020-01-10 14:15:35 +00:00
Stephane Nicoll e7f45d8a34 Polish "Add toolchains support for Spring Boot Maven Plugin"
See gh-18732
2019-12-26 12:03:18 +01:00
Dmytro Nosan eede16ff0a Add toolchains support for Spring Boot Maven Plugin
See gh-18732
2019-12-26 12:03:18 +01:00
Stephane Nicoll a2b2b46b83 Merge branch '2.2.x'
Closes gh-19463
2019-12-26 11:18:55 +01:00
Stephane Nicoll 6c016663fd Polish contribution
See gh-18711
2019-12-26 11:17:51 +01:00
Dmytro Nosan 1fb904acee Support commas embedded in command line arguments from Maven plugin
See gh-18711
2019-12-26 11:05:09 +01:00
Stephane Nicoll 065fe9996d Merge branch '2.2.x'
Closes gh-19454
2019-12-24 11:00:23 +01:00
Stephane Nicoll ee98855905 Merge branch '2.1.x' into 2.2.x
Closes gh-19453
2019-12-24 10:59:58 +01:00
Stephane Nicoll 5dc6491807 Clarify documentation of repackage mojo's attach property
Closes gh-19021
2019-12-24 10:59:36 +01:00
dreis2211 60640ea185 Fix link in new Maven Plugin docs
See gh-19108
2019-11-25 09:49:30 +01:00
Stephane Nicoll a76a864270 Polish "Replace the Maven Plugin's site with Asciidoctor documentation"
See gh-19080
2019-11-21 17:43:50 +01:00
Andy Wilkinson 3e2454f8c4 Replace the Maven Plugin's site with Asciidoctor documentation
Closes gh-19080

Co-authored-by: Stephane Nicoll <snicoll@pivotal.io>
2019-11-21 10:50:05 +00:00
Alessandro Falappa 2c199b1296 Make optimizedLaunch property name more consistent
See gh-18702
2019-10-23 18:24:33 +02:00
Kant Leung 2f73e196af Polish
See gh-18534
2019-10-08 07:38:21 -05:00
Andy Wilkinson d2b28ceba5 Don't add -Xverify:none to JVM args when running on Java 13
Closes gh-17008
2019-09-18 21:51:41 +01:00
Stephane Nicoll 07cd67a3fe Tolerate null startTime
This commit prevents a potential NPE if the startTime of the
MavenSession is not available and fallbacks to the current time. This
can happen when invoking the plugin with Maven embedded in an IDE.

Closes gh-17810
2019-08-08 17:32:04 +02:00
SaberXu c6c3a91f8d Simplify if statements
See gh-17785
2019-08-08 14:32:37 +02:00
Phillip Webb 8bc780762a Merge branch '2.1.x' 2019-07-24 11:42:48 +01:00
Phillip Webb fb1dd8fe93 Merge branch '2.0.x' into 2.1.x 2019-07-24 11:41:32 +01:00
Phillip Webb 913e831f4e Merge '1.5.x' into 2.0.x 2019-07-24 11:39:58 +01:00
Marc Rohlfs d2e34e6b07 Make layout parameter available as a user property
This commit allows the layout parameter of the Maven repackage goal to
be set from the command line.

See gh-17277
2019-07-18 18:20:06 +02:00
Phillip Webb 74d00354f5 Refine BuildInfoMojo time property
Update `BuildInfoMojo` so that the time property now defaults to
`${session.request.startTime}` rather than the time the Mojo was
created. Also update javadoc to make it clear that any supplied
value will be passed to `Instant.parse`.

See gh-17390
2019-07-16 13:51:03 +01:00
Phillip Webb 01933f9b06 Merge previously split strings
Merge some string lines that were previously split because of the
90 chars wide formatting.
2019-07-15 00:24:19 +01:00
Dmytro Nosan 8dd9c6baa1 Allow build.time to be disabled so BuildInfoMojo's output is repeatable
See gh-17390
2019-07-10 13:40:17 +01:00
Phillip Webb a66c4d3096 Unify method visibility of private classes
Apply checkstyle rule to ensure that private and package private
classes do not have unnecessary public methods. Test classes have
also been unified as much as possible to use default scoped
inner-classes.

Closes gh-7316
2019-07-03 11:39:47 -07:00
Phillip Webb 605599138e Merge branch '2.1.x' 2019-06-28 23:56:02 -07:00
Phillip Webb 92bff3c328 Merge branch '2.0.x' into 2.1.x 2019-06-28 23:42:28 -07:00
Phillip Webb cfeb0239b7 Merge branch '1.5.x' into 2.0.x 2019-06-28 23:28:34 -07:00
Andy Wilkinson aef92b9295 Merge branch '2.1.x'
Closes gh-17079
2019-06-07 11:00:44 +01:00
Andy Wilkinson 24925c3dae Merge branch '2.0.x' into 2.1.x
Closes gh-17078
2019-06-07 10:50:34 +01:00
Andy Wilkinson c6c139d980 Merge branch '1.5.x' into 2.0.x 2019-06-07 10:46:31 +01:00
Stephane Nicoll 4cdb5a8ecb Polish "Default to optimized launch of the JVM when using spring-boot:run"
Closes gh-16941
2019-05-25 12:22:00 +02:00
Dos Debug 569b850fe0 Default to optimized launch of the JVM when using spring-boot:run
See gh-16941
2019-05-25 12:21:37 +02:00
Andy Wilkinson bf670d0a5a Merge branch '2.1.x'
Closes gh-16960
2019-05-24 20:50:20 +01:00
Andy Wilkinson 60d60a8304 Use basedir as forked JVM's working directory in Maven plugin
Fixes gh-16811
2019-05-24 20:49:03 +01:00
Stephane Nicoll a5537bd2e1 Fork application process with Maven by default
Closes gh-16945
2019-05-23 14:40:51 +02:00
Andy Wilkinson 64860e196c Improve diagnostics when forked JVM exits with non-zero status
Closes gh-16869
2019-05-20 16:04:32 +01:00
Stephane Nicoll 66dc728018 Polish "Make excludeDevtools available as a user property"
Closes gh-16701
2019-05-20 10:38:15 +02:00
jvwilge dcc09ffac2 Make excludeDevtools available as a user property
See gh-16701
2019-05-20 10:37:40 +02:00
Stephane Nicoll 6544d19fbf Merge branch '2.1.x' 2019-05-13 11:15:57 +02:00
Stephane Nicoll 4c1ef630c9 Restore lazy evaluation of project/build/finalName
This commit restores the read-only `finalName` so that its value can
be lazily resolved against `${project.build.finalName}`.

While doing the evaluation ourselves and not relying on a dedicated
field at all would have been better, the evaluation increased the
number of required dependencies for no good reason.

IDEs should not offer auto-completion for that read-only field and it
is not published in the generated site either.

Closes gh-16456
2019-05-13 11:14:21 +02:00
Stephane Nicoll 763c1a99e0 Polish 2019-04-04 11:01:10 +02:00
Phillip Webb 2376f973f4 Merge branch '2.1.x' 2019-04-02 13:46:36 -07:00
Phillip Webb 47c6bf741d Merge branch '2.0.x' into 2.1.x 2019-04-02 13:40:21 -07:00
Phillip Webb 07c000c5b7 Merge branch '1.5.x' into 2.0.x 2019-04-02 13:34:28 -07:00
Stephane Nicoll 680e2b223b Remove deprecated finalName attribute
See gh-16202
2019-03-29 10:46:28 +01:00
Stephane Nicoll cba1e8ada0 Merge branch '2.1.x' 2019-03-29 10:41:30 +01:00
Stephane Nicoll 04aadcdf2e Make sure custom finalName is ignored
A read-only plugin parameter can still be set by the user which leads
to an invalid repackaged archive. This commit actually ignores the field
and uses the standard attribute instead.

Closes gh-16202
2019-03-29 10:40:41 +01:00
Andy Wilkinson 878a635bfb Merge branch '2.1.x' 2019-03-28 11:48:47 +00:00
Andy Wilkinson 864942ad4f Merge branch '2.0.x' into 2.1.x 2019-03-28 09:35:53 +00:00
Andy Wilkinson ba4671f0ab Merge branch '1.5.x' into 2.0.x 2019-03-27 19:59:36 +00:00
Andy Wilkinson 36c1c051b8 Merge branch '2.1.x' 2019-03-20 16:55:10 +00:00
Andy Wilkinson e23f72c8b0 Merge branch '2.0.x' into 2.1.x 2019-03-20 16:53:48 +00:00
Andy Wilkinson 9fbd38ab3c Merge branch '1.5.x' into 2.0.x 2019-03-20 16:45:26 +00:00
Andy Wilkinson f2e3e274a8 Merge branch '2.1.x' 2019-02-21 08:19:43 +00:00
Stephane Nicoll 51936e1a5c Rename "agent" to "agents" to properly indicate its type
Closes gh-15455
2018-12-31 09:50:35 +01:00
Stephane Nicoll bf88a7e466 Be more lenient when repackage is invoked several times
This commit makes the repackager more lenient when it is invoked several
times in the same lifecycle.

Closes gh-15034
2018-11-27 15:09:55 +01:00
Stephane Nicoll d7fe3c73a3 Provide better logging for RepackageMojo
Closes gh-15294
2018-11-27 15:06:51 +01:00
Phillip Webb f3fa20b2d1 Polish 2018-10-29 14:25:45 -07:00
Stephane Nicoll 2a0451c461 Merge branch '2.0.x' 2018-10-17 18:06:19 +02:00
Jack Gough 94770cc0fd Force JMX hostname to 127.0.0.1
Closes gh-14836
2018-10-17 18:05:28 +02:00
durigon 7aaeefbc0e Use Matcher from pre-compiled Pattern rather than String for replaceAll
Closes gh-14483
2018-09-17 10:54:54 +01:00
Stephane Nicoll 143e4f026f Merge branch '2.0.x' 2018-08-01 08:48:09 +02:00
dreis2211 66b1742f96 Optimize some StringBuilder.append() calls
Closes gh-13961
2018-08-01 08:41:03 +02:00
Phillip Webb ce9c053cbf Fix checkstyle issues on master
Fix checkstyle issues following 2.0.x merge and
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:36:04 +01:00
Phillip Webb a6c9c92f2e Merge branch '2.0.x' 2018-07-28 01:35:43 +01:00
Phillip Webb 7fc455654a Fix checkstyle ternary issues
Fix checkstyle issues with ternary expressions following the
spring-javaformat upgrade.

See gh-13932
2018-07-28 01:11:52 +01:00
Johnny Lim de01e7aad4 Polish
See gh-13243
2018-05-28 09:46:40 +02:00
Phillip Webb 68ffbafbae Fix checkstyle violations 2018-05-26 00:01:45 -07:00
Phillip Webb 3702da4573 Formatting 2018-05-25 23:52:38 -07:00
Stephane Nicoll ed02d02d19 Polish "Allow repackage maven goal to take a source classifier"
Closes gh-11061
2018-05-15 15:02:22 +02:00
Björn 3c8e012411 Allow repackage maven goal to take a source classifier
Previously, the "classifier" attribute was only used to determine the
target classifier of the repackaged archive, always using the main
artifact as the source.

This commit changes the semantic of the attribute so that an existing
archive matching the "classifier" attribute can be used as source,
replacing the archive the same way the goal replaces the main archive
if no classifier is found.

If no artifact with the specified classifier exists, the repackaged
archive is still processed based on the main archive and attached to
the lifecycle using the value of the classifier attribute.

See gh-11061
2018-05-15 15:02:22 +02:00
Johnny Lim fb2ab67f4f Polish
Closes gh-13148
2018-05-14 08:24:01 +02:00
Stephane Nicoll 00a43d8f4d Merge branch '2.0.x' 2018-05-11 10:01:30 +02:00
Johnny Lim 75e591e76e Polish
Closes gh-13130
2018-05-11 10:00:15 +02:00
Phillip Webb 7b120c1c97 Formatting 2018-05-04 16:36:35 -07:00
Phillip Webb b6a2a46f78 Merge branch '2.0.x' 2018-05-03 23:54:42 -07:00
Phillip Webb 41efea51a7 Polish ternary expressions
Consistently format ternary expressions and always favor `!=` as the
the check.
2018-05-03 22:43:12 -07:00
Phillip Webb 8c0c0ee55a Merge branch '2.0.x' 2018-05-03 12:44:58 -07:00
Phillip Webb e125085993 Merge branch '1.5.x' into 2.0.x 2018-05-03 12:43:50 -07:00
Andy Wilkinson 0526594a3c Merge branch '2.0.x' 2018-05-02 12:26:23 +01:00
Stephane Nicoll fd47b728c1 Properly handle values with spaces
Closes gh-10741
2018-04-24 16:26:51 +02:00
Stephane Nicoll d4729f5389 Polish 2018-04-24 15:52:47 +02:00
Stephane Nicoll 40b7e02793 Polish "Add support for environment variables"
Closes gh-12800
2018-04-24 15:48:54 +02:00
Dmytro Nosan 95f7e3ca37 Add support for environment variables
See gh-12800
2018-04-24 14:48:54 +02:00
Stephane Nicoll 5dd4a7e91e Merge branch '2.0.x' 2018-04-24 13:31:36 +02:00
Stephane Nicoll 55ef9e6dc9 Deprecate excludeArtifactIds
While being able to exclude all artifacts of a given group is a handy
feature, excluding all artifacts with a given artifactId does not make
much sense as it should refer to a single artifact anyway. Also the
general "exclude" mechanism is meant to do the exact same thing.

Closes gh-12885
2018-04-24 13:25:58 +02:00
Stephane Nicoll 03539d8e16 Polish "Add system properties support using explicit configuration tag"
Closes gh-10741
2018-04-24 11:46:20 +02:00
Vadeg ba34bf6470 Add system properties support using explicit configuration tag
See gh-10741
2018-04-24 11:46:20 +02:00
Stephane Nicoll 719fcb4038 Merge branch '2.0.x' 2018-04-20 07:20:24 +02:00
dreis2211 a930835b92 Replace <code> tags where possible
Closes gh-12922
2018-04-20 07:19:31 +02:00
Stephane Nicoll c43eb89823 Make sure that finalName is read only
Closes gh-12608
2018-04-17 17:53:18 +02:00
Phillip Webb 685babc829 Polish "Use lambdas for map entry iteration where possible"
Closes gh-12626
2018-04-04 19:36:18 -07:00
igor-suhorukov 69bc19e0ca Use lambdas for map entry iteration where possible
See gh-12626
2018-04-04 19:36:10 -07:00
igor-suhorukov 4f4cc1569c Polish
Declarations should use Java collection interfaces such as "Deque" rather
than specific implementation classes such as "LinkedList".

Closes gh-12405
2018-03-09 09:32:14 +01:00
Phillip Webb 7bc535e4fa Polish 2018-02-28 10:59:26 -08:00
Andy Wilkinson fdb9a1ea8f Consider time in BuildInfo up-to-date checks and allow it to be set
Closes gh-12111
Closes gh-12266
2018-02-27 20:09:07 +00:00
Phillip Webb 4b9c3c137e Polish Collection.toArray
Consistently use `StringUtils.toStringArray`, `ClassUtils.toClassArray`
or zero length when converting collections to arrays.

Fixes gh-12160
2018-02-22 21:11:30 -08:00
Stephane Nicoll d43346d6c2 Polish "Fix potential resource leaks"
Closes gh-11624
2018-01-17 13:56:53 +01:00
igor-suhorukov 5a4238acfc Fix potential resource leaks
See gh-11624
2018-01-17 13:54:50 +01:00
Phillip Webb 5ca608330c Merge branch '1.5.x' 2017-12-13 13:07:18 -08:00
dreis2211 a76005e8d9 Remove concatenations with empty string
Closes gh-10512
2017-10-10 12:44:33 -07:00
Phillip Webb 748e0779b6 Update copyright year for changed files 2017-10-10 11:56:13 -07:00
Phillip Webb d588bf7506 Fix odd Java parsing issues
Update `LoggingMainClassTimeWarningListener` to import individual
`Layout` inner classes. This fixes an odd javac parse issue that
otherwise occurs.

See gh-9316
2017-10-04 16:34:39 -07:00
Phillip Webb 0ba4830b4f Relocate projects to spring-boot-project
Move projects to better reflect the way that Spring Boot is released.

The following projects are under `spring-boot-project`:

  - `spring-boot`
  - `spring-boot-autoconfigure`
  - `spring-boot-tools`
  - `spring-boot-starters`
  - `spring-boot-actuator`
  - `spring-boot-actuator-autoconfigure`
  - `spring-boot-test`
  - `spring-boot-test-autoconfigure`
  - `spring-boot-devtools`
  - `spring-boot-cli`
  - `spring-boot-docs`

See gh-9316
2017-10-04 16:34:23 -07:00