We are very excited to announce the release of Gradle 0.5. This
release comes with some major new features. For example full support
for deployment to Maven repositories including pom generation, support
for generating OSGi bundles and a jetty plugin for testing web
applications.
*Credits*
Many thanks to Helmut Denk and Martin Vlcek for all their feedback.
Also thanks to Victor Ott for guiding the way to our new windows start
scripts. Tom Eyckman has contributed a TestNG integration. Phil
Messenger has contributed Cobertura and dependency reporting and
improved the Eclipse WTP file generation (after providing the initial
version in 0.4). Except the Eclipse stuff, the contributions haven't
made it into 0.5 but will make it into trunk very soon. We are also
very indebted to Johannes Zillmann and Marko Bauhard for their
invaluable beta testing of our trunk while successfully porting a
massive enterprise build from Maven to Gradle.
*New and Noteworthy*
-Gradle now fully supports deployment to Maven repositories, including
all necessary Maven metadata manipulations. This also works for Maven
snapshots. Gradle also allows you to install to the local Maven
repository. The Maven poms are automatically generated for you (you
can customize them). It is possible to deploy as many artifacts per
project to a Maven repository as you like.
See http://gradle.org/userguide/0.5/userguidech14.html#x43-10400014
-Gradle now enables the generation of OSGi bundles.
See http://gradle.org/userguide/0.5/userguidech13.html#x36-7600013
-Gradle now provided an equivalent to the Maven Jetty plugin for
testing web applications. This is not documented in the user's guide
yet. You might have a look at the integration test for this feature to
learn how it is used. See <GRADLE_HOME>/samples/web-project of the
gradle-all distribution.
-The logging of Gradle has improved a lot. The default log level is
now very conservative and only logs important lifecycle events. We
have also spent a lot of effort into redirecting log statements from
external libraries into our logging system (e.g. Ant, Ivy). Even
standard out is now captured and redirected. All this is completely
configurable for the users on a per project, per task or per whatever
base.
See http://gradle.org/userguide/0.5/userguidech8.html#x25-390008
-Most of the Ivy features for configuring dependencies are now exposed
by our DSL. Gradle has an improved notation for those use cases.
See http://gradle.org/userguide/0.5/userguidech13.html#x36-8200013.2
-Working with dependency configurations is much more convenient now.
This is not documented in the user's guide yet. You might have a look
at the Javadoc of the new Configuration class:
See http://gradle.org/api/0.5/org/gradle/api/dependencies/Configuration.html
-Gradle now provides a transformer mechanism to manipulate the Ivy
objects generated by Gradle. This is not documented in the user's
guide yet. Have a look at the Javadoc of the respective Gradle classes.
-Build sources are cached now. This makes using them really appealing
now.
-You can now assign arbitrary properties to tasks.
See http://gradle.org/userguide/0.5/userguidech2.html#x4-100002.7
-Support for configuring any object in a builder fashion.
See http://gradle.org/userguide/0.5/userguidech4.html#x9-250004.6
-Gradle is back to windows start scripts. In Gradle 0.3 we have moved
from windows start scripts to launch4j generated exe commands. The
major reason for this had been the known problem with exit values and
bat scripts. But the launch4j runtime configuration was not flexible
enough. We have now turned to windows start scripts again. We have
solved the exit value issue with the help of environment variables.
This is very important for CI servers.
See http://gradle.org/getting-started.html
*Migrating from 0.4*
-In Gradle 0.5 there are now default include/exclude pattern for JUnit.
See http://gradle.org/userguide/latest/userguidech10.html#x28-5300010.6
-The task graph of the Java Plugin has slightly changed. The
uploadDists no longer depends on uploadLibs. There is a new upload
task triggering uploadDists as well as uploadLibs.
See http://gradle.org/userguide/latest/userguidech10.html#x28-470032
-Incompatible Changes
-- DependencyManager.addConfiguration() no longer accepts an Ivy
Configuration object.
-- The tasksGraph property has been removed from tasks. You can access
the task execution graph using the 'project.build.taskGraph' property.
See the javadoc for class TaskExecutionGraph for more details.
-- Tasks are no longer constructed with a Dag parameter as the 3rd
constructor parameter. Task constructors are now called with the task
name, and project.
-- The Dag parameter has been removed from TaskAction.execute().
- Hans
--
Hans Dockter
Gradle Project lead
http://www.gradle.org
Release Notes - Gradle - Version 0.5
** Bug
* [GRADLE-52] - Check why logger.warn statements are not printed
out when used in a gradefile (logger.error works)
* [GRADLE-229] - Internal project dependencies are uploaded to
all public resolvers specified in uploadLibs.
* [GRADLE-232] - Gradle returns exit value 0 in case of an error
* [GRADLE-235] - NPE if a subproject is not declared right
* [GRADLE-241] - Cannot build gradle from the source distribution
* [GRADLE-242] - Gradle throws a NPE if Ivy can't resolve a
dependency.
* [GRADLE-245] - The pom of Maven dependencies using classifieres
is ignored.
* [GRADLE-246] - Groovyc compile exception when compiling Gradle.
* [GRADLE-247] - eclipse WTP project file generation is incomplete
* [GRADLE-262] - Add the method setBuildDirName the Project
interface.
* [GRADLE-268] - jar(baseName:...) is not used for the file name
* [GRADLE-295] - The task graph should be reused when a primary
task is dag neutral
* [GRADLE-314] - Incorrect buid file and line numbers are
reported when evaluation of a dependent project fails
** Improvement
* [GRADLE-71] - Make default logging less verbose
* [GRADLE-145] - Cache the build source jar.
* [GRADLE-171] - Introduce Configuration object to our domain
* [GRADLE-209] - Ivy lookup is slow for already downloaded
dependencies from a Maven repository.
* [GRADLE-215] - Figure out how to specify a JDK for launch4j
under windows and describe this in the getting started section.
* [GRADLE-221] - Introduce TaskDependency object to the domain
model
* [GRADLE-225] - Introduce public api for task execution graph
* [GRADLE-228] - eclipse: ordering of classpath resources
(resource folders over dependencies)
* [GRADLE-230] - Allow to assign configurations to global excludes
* [GRADLE-234] - Make the default configuration depends on a new
master configuration, not on libs.
* [GRADLE-236] - Delegate Ant and Ivy output to slf4j
* [GRADLE-243] - rethink default for junit-filter-pattern
* [GRADLE-250] - Improve error reporting when a listener throws
an exception
* [GRADLE-251] - BuildListener is notified of completion of all
major lifecycle stages
* [GRADLE-254] - Update versions of dependencies
* [GRADLE-264] - Add convenience getClasspath method to
Compile.java and Test.groovy
* [GRADLE-266] - Support the full functionality of Ivy dependencies
* [GRADLE-267] - Provide consistent mechanism for build file to
contribute to assembly of ivy descriptor
* [GRADLE-273] - Reduce verbose output of Javadoc/Groovydoc
* [GRADLE-276] - Decouple the user guide generation from the
compiling and testing.
* [GRADLE-285] - Replace commons-logging used by http-client with
jcl-over-slf4j
* [GRADLE-288] - Simplify the design for how publish artifacts
are added.
* [GRADLE-289] - download wrapper zip to temporary file first
* [GRADLE-293] - Add functionality to redirect System.out
statements to the logging.
* [GRADLE-297] - Add shortcut notation, to add a single
dependency with a closure.
* [GRADLE-298] - Provide a way for interested classes to retrieve
the Ivy object from the base dependency manager
* [GRADLE-301] - Improve search speed for settings file in
hierarchical layouts
* [GRADLE-302] - Add a listener which is notified as tasks are
executed
* [GRADLE-307] - Archive task configure actions for bundles.
* [GRADLE-310] - Introduce Upload task and make uploadDists
independent on uploadLibs
** New Feature
* [GRADLE-24] - Add merge feature to run a number of tasknames as
one build
* [GRADLE-163] - Offer afterDagCreated listener
* [GRADLE-179] - Add ability to generate and deploy a POM from a
gradle project
* [GRADLE-231] - Don't use fixed configurations for certain
archive types. Let the Bundle assign them.
* [GRADLE-304] - Dynamic properties for tasks
* [GRADLE-305] - Provide a configure method in the Project class,
that applies a closure to any object.
* [GRADLE-306] - Generating OSGi bundle manifest files for jars.
* [GRADLE-313] - Add something similar to the maven jetty plugin.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email