【发布时间】:2011-05-05 18:50:24
【问题描述】:
我正在尝试使用 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?
在线搜索可能相关的参考资料后,我发现threads like this one 在从源代码构建 2.3 候选版本时遇到了类似问题。这些线程 frequently mention 和 gwt-servlet-deps.jar 需要包含在编译类路径中,这似乎是 GWT 问题跟踪系统中围绕 this issue 的劳动成果。
当然,对于 Ivy,它与我所看到的建议并不完全相同。上述<dependency... 规则似乎不会下载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 去获取它们。我觉得我很接近了,因为我找到了this thread,它显示了一个将两个验证 jar 复制到 lib(字节码和源代码)中的 Ant 任务,但我需要一些帮助来连接 Ivy 世界的各个点。
我将如何告诉 Ivy 获取源 jar?
【问题讨论】:
标签: gwt ant maven ivy bean-validation