Most obfuscation focuses on bytecode. I have to supply the source code too as that is what a GWT compiler an external developer would use needs to run. Before releasing the source code I need to clean it up a bit:
- Obfuscate method variable names
- Obfuscate private method argument names
- Remove all non-Javadoc comments except for the licence at the top of each file.
- Remove all Javadoc comments on private methods or protected methods of final classes.
- Remove certain Javadoc tags such as @author
- Remove certain other comment tags such as TODO, FIXME, etc.
- Remove all @see references to private classes
- Remove all whitespace
Alternatively to the above all comments and all Javadoc could be removed (licence still needed at the top of each file) and I'd generate Javadoc separately.
I have not found a way that I could be sure would work nicely from within a gradle build script executed on multiple platforms. Some very old and no longer maintained solutions may have trouble with Java enhancements such as diamond operators and lambdas.
Are there any recommendations as to how I could do this?
Note that there are many questions like this unanswered here. One of them: GWT Java Obfuscation