- New and Noteworthy
- Daemon no longer experimental
- Extra Properties
- Many deprecated API items removed
- Java compiler integration
- Copy and archive tasks preserve file permissions on UNIX
- Improvements to DSL
- Improved C++ support
- Non-daemon builds honour build environment properties
- Migration
- Fixed Jira Issues
New and Noteworthy
Daemon no longer experimental
The Gradle Daemon is no longer considered experimental and is considered stable. See the user guide chapter on the Gradle Daemon for more information.
Extra Properties
The new “Extra Properties” mechanism replaces “Dynamic Properties”. See the relevant section of the migration guide for more information.
Many deprecated API items removed
We've shed some weight as we prepare for 1.0 final by removing some long deprecated items. The full list is in the migration guide.
Java compiler integration
The (Java) Compile task now uses Gradle's own compiler integration by default, rather than using the Ant javac task. In many cases, this already speeds up compilation today, and it will allow us to do further improvements in the future. When run in fork mode (compile.options.fork = true), Gradle's compiler configuration won't fork a new JVM for each compile task, but will try to reuse the same JVM as much as possible. This can result in a significant speedup (in particular for builds with many smaller projects) while still giving you all the advantages of forking (like advanced compiler configuration options). For the time being, you can still get back the Ant javac integration with compile.options.useAnt = true.
Copy and archive tasks preserve file permissions on UNIX
Improvements to DSL
You can now pass Task outputs to the from method of copy or archive tasks. This adds an implicit dependency to the output producing task.
As a default, the evaluation of child projects depends on the evaluation of its parent projects. Changing this default behavior has been simplified:
| 1.0-milestone-8 | 1.0-milestone-9 |
|---|---|
| |
|
Improved C++ support
It is now easier to work with executables that use shared libraries. The C++ plugins now add an installMain task, which creates a local development installation of the executable, that also includes the shared libraries that the executable requires at runtime. You can run the executable directly out of the installation, without needing to install shared libraries or to mess with platform-specific environment variables.
- Mac OS X support, G++ and XCode.
- Windows support, with Visual C++ and MinGW.
Non-daemon builds honour build environment properties
In previous versions, only builds executed with the Gradle daemon would honour the org.gradle.java.home and org.gradle.jvmargs properties. These properties are now honoured by non-daemon builds as well. In order to do this, Gradle needs to fork a new JVM if the launched build process does not satisfy these requirements.
In order to avoid the performance impact of Gradle launching a second JVM for every build execution, you can:
- Avoid setting the org.gradle.java.home and org.gradle.jvmargs in a gradle.properties file for your build
- Run the build with the daemon enabled (set org.gradle.daemon=true in a gradle.properties file, or run with --daemon)
Migration
See Gradle 1.0-milestone-9 Migration Guide
