GWT编译器优化:什么时候安全?

IAm*_*aja 4 java optimization gwt

何时安全/明智地添加以下编译器优化:

-XdisableClassMetaData
-XdisableCastChecking
compiler.stackMode
compiler.enum.obfuscate.names
CssResource.obfuscationPrefix
CompilerParameters.gwt.xml.*
Run Code Online (Sandbox Code Playgroud)

只有在开发(或生产)模式下才有意义吗?当前是否存在任何安全漏洞?

小智 5

-XdisableClassMetaData-不使用Object.getClass()方法时安全。

-XdisableCastChecking-我个人不会使用它。但是,如果您根本不使用多态,则可以尝试。

editor.stackMode-产品的“ strip”和开发的“ emulated”

editor.enum.obfuscate.names-建议在产品中使用。

CssResource.obfuscationPrefix-在需要部分混淆的CSS时使用

对于最后一个,您可以在这里找到一些文档

仅compile.enum.obfuscate.names会影响安全漏洞(因此在prod中将其设置为true)。希望能帮助到你。

  • 我在产品中使用`XdisableCastChecking`,因为无论如何都应该在开发时检测到`ClassCastException`(不是它们以某种方式表示_codeodor_吗?) (3认同)
  • 我的观点是,即使是大项目,风险也足够小。当然是YMMV。(我几乎可以肯定 Google 使用 `XdisableCastChecking`,他们为什么要添加它?他们的项目比我的要大,用户群也越来越多) (2认同)