2013-08-22 3 views
2

Поскольку я создаю расширение chrome с проектом GWT, я хочу использовать Single Script Linker, чтобы избежать ограничения встроенного скриптинга (sigh ...). И я нашел этот ресурс на линии: http://tech-drum.blogspot.ch/2012/08/gwt-chrome-extension-using-version-2.htmlОшибка при компиляции при использовании Single Script Linker

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

Ниже приводится сообщ ошибка:

[INFO] --- gwt-maven-plugin:2.5.1:compile (default) @ fake-app --- 
[INFO] auto discovered modules [com.fake...] 
[INFO] Compiling module com.fake.name.app 
[INFO] Compiling 6 permutations 
[INFO]  Compiling permutation 0... 
[INFO]  Process output 
[INFO]   Compiling 
[INFO]    Compiling permutation 3... 
[INFO]  Process output 
[INFO]   Compiling 
[INFO]    Compiling permutation 1... 
[INFO]  Process output 
[INFO]   Compiling 
[INFO]    Compiling permutation 2... 
[INFO]  Compiling permutation 4... 
[INFO]  Compiling permutation 5... 
[INFO] Compile of permutations succeeded 
[INFO] Linking into /path/to/fake/app 
[INFO] Invoking Linker Single Script 
[INFO]  [ERROR] The module must have exactly one distinct permutation when using the Single Script Linker; found 6 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 

в чем проблема с этим? Похоже, что номер перестановки (предполагаемый как файл js?) Будет больше ожидаемого, но не должен ли компоновщик устанавливать ограничение размера при создании перестановок? Короче говоря, как это исправить? Большое спасибо!

ответ

1

Компилятор работает после код скомпилирован, он не может судить о выходе до этой точки. Этот конкретный компоновщик рассчитывает создать ровно один JS-файл (плюс изображения и т. Д., Возможно, но не более кода), следовательно, «один скрипт». Создание более чем одной перестановки не позволяет выполнять свою работу.

Рассмотрим выбор другого линкера, или комбинируя все свойства, которые вы используете (скорее всего, просто user.agent) в одну перестановку с этим в файле модуля (от http://code.google.com/p/google-web-toolkit/wiki/SoftPermutations):

<collapse-all-properties /> 
+0

Примечание: 'xsiframe' линкер должен работать в расширениях Chrome и приложений (возможно, с некоторой конфигурации настройки, не помню) –

+0

См [выпуск 7685] (https://code.google.com/p/google-web-toolkit/issues/detail? id = 7685), [выпуск 8047] (https://code.google.com/p/google-web-toolkit/issues/detail?id=8047) и [выпуск 8207] (https://code.google.com/p/google-web-toolkit/issues/detail?id=8207) и другие. Возможно, вам также придется расслабиться в CSP приложения/расширения. –

2

ыбор только пользовательский агент для Chrome должен решить вашу проблему.

Вам не нужно больше пользовательских перестановок, так как расширение распространяется только на один браузер.

Используемый вами компоновщик является правильным для создания только файла javascript с кодом вашего расширения.

<set-property name="user.agent" value="safari" /> 
+0

Упс, я пропустил, что это было для расширения хром, поэтому это более чистое решение, чем то, что я дал, +1. –

Смежные вопросы