2011-05-12 27 views
21

我有一个CssResource,我想有一些“映射”的CSS类的方法:在GWT 2.0 CssResource中,我如何关闭所有CSS类的混淆?

@ClassName("top-table") 
String topTable(); 

但我想关掉混淆GWT确实(在开发至少,对于萤火虫更好的调试等)。

有没有简单的方法来实现这一目标?我知道我可以在我的css文件中使用@external,但是接下来我必须定义所有的css类,如@external .c1,.c2,.c3等......

类似@external。*会解决我的问题似乎问题,但并不可用至少在GWT的2.0.x

我目前的解决方案是使用:

<set-configuration-property name="CssResource.style" value="pretty"/> 

但是,这并不关闭模糊,只是使它更漂亮: )我知道obf是需要避免碰撞,但我没有在我的情况下,真的想关闭混淆

+0

你究竟把那行''放在哪里? – 2011-09-20 09:07:06

+0

这应该重新打开,因为链接问答是在我的第一个问题后创建的,我的问题包含更多更好的答案......没有意义将旧问题关闭为重复.... – AlfaTeK 2015-09-30 19:35:13

回答

2

按照GWT的文档,可以在一般禁用ofbuscation。从CssResource section "levers and knobs"

配置属性CssResource.style可以设置成漂亮 将禁止类的名称混淆,以及漂亮地打印的 CSS内容。将此值与ClientBundle.enableInlining值 false结合起来,以生成可用于编辑客户端 的CSS表达式。

在我的工作GWT的项目,我可以看到这个属性在Resources.gwt.xml实际设置(包括在GWT-user.jar):

<!-- This can be used to make CssResource produce human-readable CSS --> 
    <define-configuration-property name="CssResource.style" is-multi-valued="false" /> 
    <set-configuration-property name="CssResource.style" value="obf" /> 

什么我不清楚是怎么重写此值,因为它已被设置。你设法弄清楚了吗?

1

您可以使用@external directive来防止对css类名称进行模糊处理。

在你的情况,你的CSS文件可能包含

@external top-table; 
.top-table { 
    some: rule; 
} 
+0

“是否有简单的方法实现这一点?我知道我可以在我的css文件中使用@external,但是接下来我必须定义所有的css类,如@external .c1,.c2,.c3等......“对于所有类来说,消耗:( – AlfaTeK 2011-05-15 01:10:51

6

要为你的遗产类的禁用混淆一次,你可以利用说什么here

总之,在传统的css文件,它使用的是CssResource集束,把这个宣言:@external .*;

具有此声明文件的文件中的所有类都不会被混淆。

0

要没有混淆的类名,你只需要以下行添加到您gwt.xml文件:

<set-configuration-property name="CssResource.style" value="stable" /> 

当设置为稳定类名称由合格的类名后跟方法名称在资源接口(当然与所有。由_)

所有可能的值CssResource.style替换(对GWT 2.7)是:

  • 漂亮
  • 调试
  • 稳定
  • 稳定shorttype
  • 稳定NoType在

检验可用值你的GWT版本看起来t com.google.gwt.resources.rg.CssObfuscationStyle您正在使用的gwt版本的javadoc(或源代码)。