Hi Adam,
I would not remove the "-a" even if the UP-TO-DATE check is optimized.
It is a useful and working feature.
Your ideas for the UP-TO-DATE check are very good. Is there a JIRA issue
for this.
I profiled the UP-TO-DATE and found, that a new compileJava was faster
than the UP-TO-DATE check.
I called "gradle clean" and then twice "gradle --profile build" and the
first "compileJava" takes "2:11" and the second takes "2:14".
So the UP-TO-DATE check really needs optimization.
regards,
Mathias Kalb
Am 12.01.2011 00:33, schrieb Adam Murdoch:
On 11/01/2011, at 7:40 PM, Mathias Kalb wrote:
Hi Adam,
I often used the "-a" during my creation of the build scripts.
I have a multiproject with project dependencies.
If the first two subprojects works fine and the third has a problem I
only want to build the third subproject "gradle -a
:subproject3:compileJava".
Without the "-a" gradle has to check the other two subprojects and
the UP-TO-DATE check takes a long time (> 1 minute on a fast machine).
I guess we'll have to keep -a for a while longer, then.
Over time, we will make these up-to-date checks faster, so that
eventually -a ends up making no difference. There are certainly things
we can do here. For example:
* Perform the checks asynchronously, so that we are invalidating
queued tasks while executing another task.
* Aggregate tasks together and check only the inputs and outputs of
the aggregate, rather than intermediate files. For example, in the
case of project dependency, you generally only care if the jar is
up-to-date wrt its transitive inputs. You don't care if a class file
has been deleted or changed, as it is essentially a temporary file for
the purposes of building the jar.
* Often, the output of one task is the input to another task (or
tasks). We can merge the checks into a single pass.
* The daemon can listen for file system changes, and invalidate tasks
in the background. We should be able to end up with a pre-built model,
with the checks already performed.
Mathias Kalb
Am 10.01.2011 22:08, schrieb Adam Murdoch:
Hi,
There are a few command-line options which have been superseded by
incremental build, and I'd like to remove them. The options are:
-A/--dep-tasks
-a/--no-rebuild
--no-opt
Anyone have a reason to keep them?
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email