156 Commits

Author SHA1 Message Date
Spring Buildmaster
542f3cbda8 Next development version 2014-06-24 13:53:56 -07:00
Phillip Webb
f30b962ff9 Add support for unpacking nested JARs
Update the executable JAR code to automatically unpack any entries
which include an entry comment starting `UNPACK:` to the temp folder.
The existing Maven and Gradle plugins have been updated with new
configuration options and the `spring-boot-tools` project has been
updated to write the appropriate entry comment based on a flag passed
in via the `Library` class.

This support has been added to allow libraries such a JRuby (which
assumes that `jruby-complete.jar` is always accessible as file) to work
with Spring Boot executable jars.

Fixes gh-1070
2014-06-24 00:46:56 -07:00
Phillip Webb
5f8fbfd73a Add Library abstraction
Add a Library class update the LibraryCallback interface and
implementations to use it. This change is in preparation for
an addition `unpack` flag that will be required to allow the
automatic unpacking of certain nested jars.

See gh-1070
2014-06-24 00:34:19 -07:00
Phillip Webb
5de2661b43 Drop RepackageTask.getDependencies()
Drop `RepackageTask.getDependencies` from the gradle plugin in favor of
exposing `getLibraries()` and using the callback.
Drop getDependencies
2014-06-23 22:31:16 -07:00
Phillip Webb
c713c8091d Polish 2014-06-23 19:41:22 -07:00
Phillip Webb
72a2e5bc02 Polish Gradle repackage 2014-06-23 19:34:02 -07:00
Dave Syer
542896b28f Support for non-executable JAR in addition to the repackaged one
Stretches the Gradle boot plugin a bit, so there's a sample build
in the "profile" sample. Howto docs give examples.

Fixes gh-1135
2014-06-23 11:08:58 +01:00
Dave Syer
1b97e8d921 Skip dependency exclusions if groupId is null
Fixes gh-1133
2014-06-22 19:20:51 +01:00
Dave Syer
08ae390696 Add dependencies to inputs in bootRepackge
See gh-1113
2014-06-22 09:53:11 +01:00
Dave Syer
772df9bea7 Add inputs to gradle bootRepackage task
See gh-1113
2014-06-20 22:25:11 +01:00
Dave Syer
3411995736 Revert BootRunTask changes since they don't add anything
(Was an attempt to get Cygwin to recognise the interrupt, but it seems
to be doomed so not worth having the extra code in there really.)
2014-06-20 14:17:30 +01:00
Dave Syer
e088ecd1bc Re-order shutdown hook in BootRunTask 2014-06-20 14:17:30 +01:00
Dave Syer
a8663586dc Trap SIGINT in Gradle plugin 2014-06-20 11:27:56 +01:00
Phillip Webb
179e1558f6 Polish 2014-06-18 12:48:42 -07:00
Dave Syer
2433f721bc Add 'classifier' property to Gradle plugin
The default behaviour doesn't change with this commit, but now
the user has the option to specify a 'classifier' property
either in springBoot { classifier = 'exec' } (i.e. globally
for all repackage tasks) or in each repackage task, e.g.
bootRepackage { classifier = 'exec' }. In that case the original
archive is not overwritten but copied into <file>-<classifier>.jar
(or .war etc.) and then enhanced.

Fixes gh-1113, fixes gh-141 also I believe.
2014-06-18 16:06:09 +01:00
Dave Syer
f0393f9ca6 Remove deprecated use of Compile to work with Gradle 2.0+
The class Compile was deprecated and will be removed in Gradle 2.0 (it is
already removed in the release canidate).

Instead we should use JavaCompile. Fixes gh-1066.
2014-06-18 12:48:26 +01:00
Dave Syer
4a40e8f833 Support for main class detection in installApp
I'm sure someone can do a better job of this, but here's a proposal
that works. It uses our FindMainTask to set the relevant properties
if theu are missing in the application plugin.

Fixes gh-1105
2014-06-17 10:11:19 +01:00
Phillip Webb
3a8a127285 Implement simpler exclusion logic for Gradle
Simplify the exclusion logic used in Gradle by implementing implicit
exclusions rather than trying to detect transitive excludes.

This commit reverts much of the code originally included to fix gh-1047
which adds far too much complexity to the build and still doesn't solve
the underlying issue.

Fixes gh-1103
2014-06-16 16:54:48 -07:00
Dave Syer
f83c6aa7c1 Grab main class from "run" task if it exists
Fixes gh-1099
2014-06-16 12:43:35 -07:00
Phillip Webb
d6a14c2b99 Revert "Add @Conditional to prevent HATEOAS blowing up"
This reverts commit e6e890777040620d4e259fb79d1c56af6d1f3c71
which has an incorrect commit message.
2014-06-16 12:42:41 -07:00
Dave Syer
e6e8907770 Add @Conditional to prevent HATEOAS blowing up 2014-06-16 18:20:22 +01:00
Spring Buildmaster
4ca26a21dc Next development version 2014-06-11 10:46:27 -07:00
Andy Wilkinson
f5f3903538 Resolve versionManagement configuration lazily and preserve exclusions
Previously, the versionManagement configuration was resolved as part of
the Boot Gradle plugin being applied. This meant that no dependencies
could be added to it and attempting to do so would result in a failure:
“You can't change a configuration which is not in unresolved state”.
This commit updates ApplyExcludeRules to wrap its processing in a
before resolve action. This defers the resolution of the
versionManagement configuration until one of the project’s other
configurations is being resolved. Fixes #1077

In addition to the above, the transitive exclusions that the Gradle
plugin provides were being lost if custom version management provided
a version for the same dependency. This commit updates
AbstractDependencies to preserve the exclusions from an existing
dependency declaration while using the version from the newer
dependency. This ensures that the exclusions remain while allowing
versions to be overridden. Fixes #1079
2014-06-11 15:51:39 +01:00
Spring Buildmaster
05ed7b3bcd Next development version 2014-06-10 12:40:35 -07:00
Phillip Webb
3007a777d0 Roll back to 1.1.0.BUILD-SNAPSHOT 2014-06-10 09:00:08 -07:00
Spring Buildmaster
c650f2391e Next development version 2014-06-09 21:55:19 -07:00
Phillip Webb
cef7ad7798 Support automatic exclude rules with Gradle
Update the Spring Boot Gradle plugin to automatically apply exclude
rules to dependencies.

See gh-1047
2014-06-09 00:41:22 -07:00
Phillip Webb
9b982dabdb Restore dependency-tools API compatibility
Refactor dependency-tools to restore API compatibility with Spring
Boot 1.0. This should reduce reflection hacks that tools such as Gretty
would otherwise have to make.

See gh-1035
2014-06-08 23:58:02 -07:00
Phillip Webb
e891aa3525 Polish 2014-06-06 22:58:43 -07:00
Rob Winch
adb2205dd9 Make SpringBootPlugin more Groovy
- Remove ;
- Remove unnecessary public modifiers
- Remove unnecessary .class suffixes

Fixes gh-1032
2014-06-05 08:45:46 +01:00
Rob Winch
52382f962e Default Compile tasks to use UTF-8 encoding
We also convert the SpringBootPlugin to be .groovy to ease defaulting
the encoding to UTF-8. We do not make the file any "more groovy" to leave
this to a distinct commit.
2014-06-05 08:43:46 +01:00
Phillip Webb
794808b6b8 Various improvements to the Gradle plugin
Refactor and rework several areas of the Gradle plugin:

- Refactor package structure into functional areas and configure each
  area separately via a new PluginFeatures interface.
- Convert BootRunTask to extend RunTask rather than attempting to
  find existing RunTasks.
- Simplify agent integration by no longer needing specific BootRunTask
  code.
- Update the repackage task to consider the `mainClassName` property
  in addition to `springBoot.mainClass`.
- Automatically set `mainClassName` when calling `run` or `runBoot`
  from `springBoot.mainClass` if there is one.
- Ensure that explicitly defined `main` options on JavaExec tasks always
  take precedence.

Fixes gh-547, gh-820, gh-886, gh-912
2014-05-22 18:08:22 +01:00
Phillip Webb
7b170368e5 Require single main class
Update run tasks to ensure that only a single main class is required
when performing a class search.

See gh-886
2014-05-16 10:45:17 +01:00
Phillip Webb
506c0f50b9 Allow meta-data driven version overrides in Gradle
Add a `versionManagement` gradle configuration which can be used to
provide alternative version meta-data. Primarily added so that the
Spring IO platform can provide version overrides without causing a
cyclic build dependency.

Fixes gh-750
2014-05-08 14:37:42 +01:00
Stephane Nicoll
33082fd56d Harmonized maven dependency management
This commit harmonizes the dependency management of internal modules
so that versions can be omitted everywhere. Update the maven coordinates
to provide the full groupId for consistency
2014-05-05 14:29:01 +01:00
Phillip Webb
34b7bb20fd Add maven implicit plugin group ID
Add previously implicit <groupId>org.apache.maven.plugins</groupId>
to plugin declarations.
2014-05-02 23:03:31 +01:00
Phillip Webb
64a835e91a Move master to 1.1.0.BUILD-SNAPSHOT 2014-04-24 12:45:20 +01:00
Spring Buildmaster
d3954a1703 Next development version 2014-04-24 02:24:28 -07:00
Phillip Webb
fad5ce45db Polish 2014-04-23 12:35:33 +01:00
Andy Wilkinson
283f1b169f Ensure that local file dependencies are packaged by the Gradle plugin
Prior to this commit, a dependency on a local file was not being
packaged by the Gradle plugin. This was a regression from the behaviour
in 0.5.0.M6 caused by the move to using a ResolvedConfiguration and
ResolvedArtifacts (4f677bec) to gain access to an artifact's type so
that non-jar artefacts could be filtered out. Since then, the approach
to filtering has been changed (38585bf3) and access to an artifact's
type is no longer needed.

This commit updates ProjectLibraries to restore its use of a
FileCollection rather than a ResolvedConfiguration when getting hold of
the files in a configuration. This means that the resulting jar will
now include dependencies that aren't resolved, such as those that are
provided as local files. The filtering that is applied to the files
is unaffected by this change and only files that are zip files will be
included.

Fixes #672
2014-04-15 15:44:54 +01:00
Spring Buildmaster
a5864ebcd0 Next development version 2014-04-06 22:43:18 -07:00
Phillip Webb
2bb0f744e0 Polish 2014-04-06 21:49:12 -07:00
Dave Syer
2b616fb7d9 Extract logic for duplicate file removal so it can be shared
.. between Maven and Gradle plugins. Also fixed bug in recursive
scanning logic.

Really fixes gh-614
2014-04-02 11:02:06 +01:00
Spring Buildmaster
15e9dbe98b Next development version 2014-04-01 03:05:51 -07:00
Phillip Webb
0af7f7e347 Add missing POM info 2014-04-01 02:07:42 -07:00
Phillip Webb
488b03387f Polish POM formatting 2014-04-01 02:07:36 -07:00
Phillip Webb
6f9bb233ad Revert "Next development version"
This reverts commit b67bb70ee3050a9ecde8bd26915dd7b92a456d60.
2014-04-01 00:38:48 -07:00
Spring Buildmaster
b67bb70ee3 Next development version 2014-03-31 22:38:42 -07:00
Phillip Webb
ac4cdd33c3 Revert "Next development version"
This reverts commit 1d0eea12eb4cc020be6e6db5774210f80e95781a.
Returning to 1.0.0.BUILD-SNAPSHOT for an updated release.
2014-03-31 17:14:30 -07:00
Spring Buildmaster
1d0eea12eb Next development version 2014-03-28 11:47:09 -07:00