Подтвердить что ты не робот

В 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 необходимо избегать столкновений, но у меня нет этого в моем случае и действительно хотелось бы отключить обфускацию

4b9b3361

Ответ 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, которую вы используете.