2011-05-12 35 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(或源代碼)。