Buck extensively uses caching and storing metadata in buck-out
directory, so that it's not possible per design to re-trigger the
execution of custom rule, without wiping out the whole buck-out
directory. See also the discussion on this issue: [1].
The implementation of Maven deployment as a custom build rule with
a side effect is wrong approach to start with. It was only done as a
workaround, because buck doesn't offer `install` or `publish` command
that must not be free of side effects like it's the case with `build`
command. Having side effects with `build` command breaks bucks model.
As workaround for now add standalone Python script, that re-uses Buck
api_{deploy|install} targets, resolves $(location <target>) macros and
executes the deployment by calling mvn.py utility directly:
$ tools/maven/api.py {deploy,install}
Dry run mode is supported as well:
$ tools/maven/api.py -n {deploy,install}
[1] https://github.com/facebook/buck/issues/342
Change-Id: I7fb86ad6967a1fa1e7ac842ba5e0e8cf0103b773