应用单脚本链接器时编译错误

时间:2013-08-22 23:28:07

标签: gwt google-chrome-extension xss

因为我正在使用GWT项目创建chrome扩展,所以我想使用单脚本链接器来避免内联脚本限制(叹息......)。 我在网上找到了这个资源:http://tech-drum.blogspot.ch/2012/08/gwt-chrome-extension-using-version-2.html

这个单独的脚本链接器看起来像一个魅力,但是当我真的将它添加到我的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文件?)大于预期,但链接器在创建排列时是否应该放置大小限制?总之,如何解决这个问题?非常感谢!

2 个答案:

答案 0 :(得分:2)

仅选择Chrome的用户代理可以解决您的问题。

您不需要更多用户代理排列,因为您的扩展程序仅适用于一个浏览器。

您正在使用的链接器是一个正确的链接器,用于生成带有扩展代码的javascript文件。

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

答案 1 :(得分:1)

链接器在编译代码后运行,在此之前无法对输出做出判断。这个特殊的链接器期望生成一个JS文件(可能还有图像等,但不是更多的代码)因此“单个脚本”。生成多个排列会阻止它完成其工作。

考虑选择一个不同的链接器,或者将您正在使用的所有属性(可能只是user.agent)与模块文件(来自http://code.google.com/p/google-web-toolkit/wiki/SoftPermutations)的一个排列组合在一起:

<collapse-all-properties />