我正在尝试让一个简单的 GWT 2.3 项目在 DevMode 下工作,并带有 Ant Ivy build 。我在 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
需要将其包含在编译类路径中,这似乎是 this issue 周围的劳动成果在 GWT 问题跟踪系统中。
当然,Ivy 的建议与我看到的建议不太一样。以上<dependency...
规则似乎没有下载gwt-servlet-deps.jar
(而不是下载 GWT 的官方发行版,其中可以找到该 jar 的特殊副本)。
所以我推断出在 Ivy 宇宙中我可能需要添加这样的东西:
<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="..."/>
...我认为我什至有这个想法,这真是太糟糕了(我似乎是 Ivy 和 Maven 世界永远的新手),但是,唉,我仍然遇到同样的错误。
显然,Java 到 Javascript 编译器想要源代码,而不仅仅是字节码 jar,但我不知道如何告诉 Ivy 去获取它们。我觉得我已经很接近了,因为我找到了 this thread它显示了一个 Ant 任务,它将两个验证 jar 复制到 lib 中(字节码和源代码),但我需要一些帮助来连接 Ivy 世界的各个点。
我如何告诉 Ivy 获取源 jar?
最佳答案
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
xmlns:m="http://ant.apache.org/ivy/maven">
<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA">
<artifact name="validation-api"/>
<artifact name="validation-api" m:classifier="sources"/>
</dependency>
来源:http://groups.google.com/group/google-web-toolkit/browse_thread/thread/4744e62fb088ba60?pli=1
感谢菲利普·苏萨
关于来自 Ant Ivy 构建的 gwt 2.3 gwt-servlet-deps.jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5902703/