В GWT 2.0 CssResource, как я могу отключить запутывание для всех моих классов css?

у меня есть CssResource, где я хочу, чтобы некоторые классы css "сопоставлялись" с методами:

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

но я хочу отключить обфускацию GWT (при разработке, по крайней мере, для лучшей отладки в firebug и т. д.).

есть ли простой способ достичь этого? Я знаю, что могу использовать @external в моем файле css, но тогда я должен определить все мои классы css, такие как @external .С1 .С2 .С3 и т. д...

что-то вроде @external .* решил бы мою проблему, но это кажется, не доступен, по крайней мере, в gwt 2.0.x

мое текущее решение-использовать:

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

но это не отключает обфускацию, просто делает ее красивее :) я знаю, что obf необходим, чтобы избежать столкновений, но у меня нет этого в моем случае, и я бы очень хотел отключить обфускацию

4 ответов


согласно документации GWT можно вообще отключить ofbuscation. От cssresource раздел "рычаги и ручки":

свойство конфигурации CssResource.стиль может быть довольно который отключит обфускацию имени класса, а также pretty-print CSS содержание. Объедините это с ClientBundle.значение enableInlining из false для создания выражения CSS, которое поддается стороне клиента редактирование.

в моем рабочем проекте 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" />

Мне непонятно, как переопределить это значение, так как оно уже установлено. Тебе удалось это выяснить?


чтобы отключить обфускацию для всех вас устаревших классов сразу, вы можете использовать то, что сказано здесь

короче говоря, в устаревшем css-файле, который вы связываете с помощью cssresource bundle, поместите это объявление:@external .*;

все классы в файле, который имеет этот файл объявления, не будут запутаны.


можно использовать @external директива чтобы предотвратить запутывание имени класса css.

в вашем случае ваш файл css может содержать

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

чтобы не запутывать имена классов, вам просто нужно добавить следующую строку в свой gwt.xml-файл:

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

при установке в стабильные имена классов будут состоять из квалифицированного имени класса, за которым следует имя метода в интерфейсах ресурсов (конечно, со всеми . заменил на _)

все возможные значения для CssResource.стиль (для gwt 2.7) являются:

  • довольно
  • debug
  • стабильный
  • стабильный-shorttype
  • стабильный-notype

чтобы проверить значения, доступные для вашей версии gwt, посмотрите на com.гуглить.ГВт.ресурсы.РГ.CssObfuscationStyle javadoc (или исходный код) для используемой версии gwt.