我已经让 CodeServer 作为 Eclipse 中的外部工具运行(警告 - 您仍然必须以某种方式提供您的 html 文件,我还没有这样做,但这似乎确实让 codeserver 运行)。要将 CodeServer 设置为 Eclipse 中的外部工具,
0) 请记住,您还应该更新您的 module.gwt.xml 文件以允许 Super Dev Mode 书签标记并启用源映射以进行调试。将这些喜欢添加到您的 module.gwt.xml 文件中。
<!-- enable the SuperDevMode book marklets -->
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
<!-- enable source maps -->
<set-property name="compiler.useSourceMaps" value="true" />
1) 打开外部工具/外部工具配置对话框;这是在 Windows 的顶级“运行”菜单下。
2) 通过在左侧列表中选择“程序”来创建新配置,然后按“新建”按钮(它看起来像一个文档)。在对话框中命名您的配置。
3) java.exe 文件的路径位于“位置:”框中。如果您不知道路径,可以使用“浏览文件系统”按钮来定位它。
4)我将工作目录留空。我不确定这是否重要;没有它似乎可以工作。有没有人知道这是否应该设置?
5)“参数:”框中的大部分工作。您将为类路径提供一个参数,其中包括 gwt-dev.jar、gwt.user.jar、gwt-codeserver.jar 和源目录的路径。然后,您将为 gwt-codeserver.jar 和要运行的 CodeServer 类提供一个 -jar 和参数,然后您将向 CodeServer 提供参数。我会分解它;
5a) -cp "逗号分隔的类路径列表,用双引号括起来"。为了使您的工具定义更加可移植,请使用 eclipse“Varaibles”来计算与您的安装相关的路径。特别是,我使用“workspace_loc”作为工作空间的相对路径(如 src 目录),使用“eclipse_home”作为 gwt SDK 的路径gwt-user.jar 之类的东西(因为我在 eclipse 插件文件夹中安装了 SDK)。这是我的类路径部分;
-cp "${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-user.jar;${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-dev.jar;${workspace_loc:\GWTFractionTest\war\WEB-INF\lib\gwtquery-1.1.0.jar};${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-codeserver.jar"
5b) 接下来是 java.exe 应该运行的类的名称。这是 CodeServer 类;
com.google.gwt.dev.codeserver.CodeServer
5c) 接下来是 CodeServer 的参数。第一个是直接指向 src 的路径。对我来说,这是一个工作区相对路径;
-src "${workspace_loc:\GWTFractionTest\src}"
5d)最后,模块路径(你的 gwt.xml 文件的类路径)这是我的;
com.conceptua.fractiontest.FractionTest
这是我的完整参数列表;
-cp "${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-user.jar;${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-dev.jar;${workspace_loc:\GWTFractionTest\war\WEB-INF\lib\gwtquery-1.1.0.jar};${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-codeserver.jar" com.google.gwt.dev.codeserver.CodeServer -src "${workspace_loc:\GWTFractionTest\src}" com.conceptua.fractiontest.FractionTest
6) 选择“运行”按钮运行 CodeServer。当我在控制台中执行此操作时;
workDir: C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp
binding: user.agent=safari
binding: compiler.useSourceMaps=true
binding: locale=en
Compiling module com.conceptua.fractiontest.FractionTest
Validating units:
Ignored 72 units with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
Computing all possible rebind results for 'com.google.gwt.useragent.client.UserAgentAsserter'
Rebinding com.google.gwt.useragent.client.UserAgentAsserter
Checking rule <generate-with class='com.google.gwt.editor.rebind.SimpleBeanEditorDriverGenerator'/>
[WARN] Detected warnings related to 'com.google.gwt.editor.client.SimpleBeanEditorDriver'. Are validation-api-<version>.jar and validation-api-<version>-sources.jar on the classpath?
Specify -logLevel DEBUG to see all errors.
[WARN] Unknown type 'com.google.gwt.editor.client.SimpleBeanEditorDriver' specified in deferred binding rule
Compiling 1 permutation
Compiling permutation 0...
Source Maps Enabled
Compile of permutations succeeded
Linking into C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp\com.conceptua.fractiontest.FractionTest\compile-1\war\fractiontest; Writing extras to C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp\com.conceptua.fractiontest.FractionTest\compile-1\extras\fractiontest
Link succeeded
Compilation succeeded -- 58.257s
Compile completed in 60831 ms
2012-07-01 12:37:03.184::INFO: Logging to STDERR via org.mortbay.log.StdErrLog
2012-07-01 12:37:03.185::INFO: jetty-6.1.x
The code server is ready.
Next, visit: http://localhxst:9876/
2012-07-01 12:37:03.274::INFO: Started SelectChannelConnector@127.0.0.1:9876
我不确定为什么我会得到最初的“72 个带有编译错误的单元”,但它似乎继续成功编译和运行服务器。
7) 此时,您应该在 Chrome 中输入给定的 CodeServer url。您将获得一个指示 CodeServer 正在运行的页面,您可以将书签标记拖到书签工具栏;
GWT Code Server
Drag these two bookmarklets to your browser's bookmark bar:
Dev Mode On Dev Mode Off
Visit a web page that uses one of these modules:
fractiontest
Click "Dev Mode On" to start development mode.
8) 下一步是获取您的 html 文件以运行它。它显然需要由单独的网络服务器提供服务。我还在做那部分工作。
埃德