我正在尝试使用Ant Ivy构建在 DevMode 中工作的简单 GWT 2.3 项目。我在 2.3 之前的 GWT 项目(特别是 GWT 2.0.x)中使用了 Ivy,并且过去的以下依赖项(在我的 Ivy 模块 xml 文件中)对我有用:(我已经删除了我的 Ivy 配置的特定名称,并将它们显示为下面的“...”。)
<dependency org="com.google.gwt" name="gwt-dev" rev="2.3.0" conf="..." />
<dependency org="com.google.gwt" name="gwt-servlet" rev="2.3.0" conf="..." />
<dependency org="com.google.gwt" name="gwt-user" rev="2.3.0" conf="..." />
但是,我的 gwt-compile(当调用 GWT 的 Java-to-Javascript 编译器时)在 GWT 2.3 下使用上述内容失败。特别是,有几个类似于以下的错误:
[java] [ERROR] Errors in 'jar:file:/../gwt-user-2.3.0.jar!/com/google/gwt/editor/client/EditorDriver.java'
[java] [ERROR] Line 97: No source code is available for type javax.validation.ConstraintViolation<T>; did you forget to inherit a required module?
在在线搜索可能相关的参考资料后,我在从源代码构建 2.3 的候选版本时发现了类似问题的线程。这些线程经常提到一个gwt-servlet-deps.jar
需要包含在编译类路径中的内容,这似乎是GWT 问题跟踪系统中围绕此问题的劳动成果。
当然,对于 Ivy,它与我所看到的建议并不完全相同。上面的<dependency...
规则似乎没有下载a gwt-servlet-deps.jar
(与下载GWT的官方发行版相反,其中可以找到该jar的特殊副本)。
所以我推断在常春藤宇宙中我可能需要添加这样的东西:
<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="..."/>
...而且我认为即使有这个想法我也很糟糕(我似乎是常春藤和 Maven 世界的永久新手)但是,唉,我仍然遇到同样的错误。
显然,Java-to-Javascript 编译器想要源代码,而不仅仅是字节码 jar,但我不知道如何告诉 Ivy 去获取它们。我觉得我很接近了,因为我发现这个线程显示了一个 Ant 任务,它将两个验证 jar 复制到 lib(字节码和源代码),但我需要一些帮助来连接 Ivy 世界的点。
我将如何告诉 Ivy 获取源 jar?