В GWT 2.0 CssResource, как я могу отключить обфускацию для всех моих классов css?
У меня есть CssResource, где я хочу, чтобы некоторые из классов CSS были сопоставлены с методами:
@ClassName("top-table")
String topTable();
Но я хочу отключить обфускацию GWT (при разработке, по крайней мере, для лучшей отладки в firebug и т.д.).
Есть ли простой способ достичь этого? Я знаю, что могу использовать @external в моем файле css, но потом мне нужно определить все мои классы css, такие как @external.c1,.c2,.c3 и т.д.
Что-то вроде @external. * решило бы мою проблему, но, похоже, не доступно, по крайней мере, в gwt 2.0.x
Мое текущее решение заключается в использовании:
<set-configuration-property name="CssResource.style" value="pretty"/>
Но это не отключает обфускацию, просто делает его красивее:) Я знаю, что obf необходимо избегать столкновений, но у меня нет этого в моем случае и действительно хотелось бы отключить обфускацию
Ответы
Ответ 1
В соответствии с документацией GWT можно вообще отключить busbus. Из CssResource раздел "Рычаги и ручки" :
Свойство конфигурации 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" />
Для меня непонятно, как переопределить это значение, поскольку оно уже установлено. Вам удалось это понять?
Ответ 2
Чтобы отключить обфускацию для всех устаревших классов сразу, вы можете использовать сказанное здесь
Короче говоря, в устаревшем файле css, который вы связываете с помощью пакета CssResource, поместите это объявление: @external .*;
Все классы в файле, который имеет этот файл декларации, не будут запутаны.
Ответ 3
Вы можете использовать директиву @external
, чтобы предотвратить запутывание класса класса css.
В вашем случае ваш файл css может содержать
@external top-table;
.top-table {
some: rule;
}
Ответ 4
Чтобы не запутать имена классов, вам просто нужно добавить следующую строку в файл gwt.xml:
<set-configuration-property name="CssResource.style" value="stable" />
При установлении стабильных имен классов будет состоять из квалифицированного имени класса, за которым следует имя метода в ваших интерфейсах ресурсов (конечно, со всеми заменяется на _)
Все возможные значения для CssResource.style(для gwt 2.7):
- очень
- отладки
- стабильна
- устойчиво-shorttype
- устойчиво-notype
Чтобы проверить доступные значения для вашей версии gwt, посмотрите com.google.gwt.resources.rg.CssObfuscationStyle javadoc (или исходный код) для версии gwt, которую вы используете.