В GWT 2.0 CssResource, как я могу отключить запутывание для всех моих классов CSS? - PullRequest
21 голосов
/ 12 мая 2011

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

Ответы [ 4 ]

6 голосов
/ 15 октября 2013

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

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

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

2 голосов
/ 20 сентября 2011

В соответствии с документацией GWT можно вообще отключить работу.Из CssResource, раздел "рычаги и ручки" :

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

В моем рабочем проекте GWT я вижу, что это свойство фактически установлено в ресурсах.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 голос
/ 14 мая 2011

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

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

@external top-table;
.top-table {
  some: rule;
}
0 голосов
/ 30 марта 2016

Чтобы не запутывать имена классов, вам просто нужно добавить следующую строку в ваш файл 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.

...