Created by: davidhao3300
To improve performance, we've found that setting a couple of targets to abi_generation_mode='source' will improve build performance. However, buck currently silently overrides the user-provided ABI generation mode.
I'm not a domain expert here, so it's possible that there is good reason to silently override the user choice. This PR is both something I hope to merge upstream but also open conversation on. If there is a good reason to not do this change, I will change the PR to be one that documents why the override happens.
There is a cost to this change. Existing users may have been specifying the wrong ABI generation mode in their targets, and buck has been silently overriding the ABI generation mode. I feel that it is more intuitive to trust the user if they explicitly provide the mode in the java_library call, so I believe this is acceptable.