gwt 2.3 gwt-servlet-deps.jar из сборки Ant Ivy - PullRequest
2 голосов
/ 05 мая 2011

Я пытаюсь заставить работать простой проект GWT 2.3 в DevMode со сборкой Ant Ivy .Я использовал Ivy для проектов GWT до 2.3 (в частности, GWT 2.0.x), и в прошлом у меня работали следующие зависимости (в моем XML-файле модуля Ivy): (Я удалил конкретные имена для своих конфигураций 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 (когда вызывается компилятор Java-to-Javascript GWT), однако, не работает, используя вышеизложенное в 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 из источника.Эти потоки часто упоминают a gwt-servlet-deps.jar, который необходимо включить в путь к классам компиляции, который, по-видимому, является плодом труда вокруг этой проблемы в системе отслеживания проблем GWT.

Конечно, с Айви это не совсем то же самое, что совет, который я вижу.Вышеуказанные правила <dependency..., по-видимому, не загружают gwt-servlet-deps.jar (в отличие от загрузки официального дистрибутива GWT, в котором можно найти специальную копию этой банки).

Итак, я пришел к выводу, что во вселенной Ivy мне, вероятно, нужно добавить что-то вроде этого:

<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="..."/>

... и я подумал, что мне было плохо, даже если бы я имел этоидея (я, кажется, вечный новичок в мире Ivy & Maven), но, увы, я все еще получаю те же ошибки.

Видимо, компилятору Java-to-Javascript нужны источники, а не толькобаночка байт-кода, но я не знаю, как сказать Айви, чтобы они достали их.Я чувствую, что я близко, потому что я нашел этот поток , который показывает задачу Ant, которая копирует два jar проверки в lib (как байт-код, так и исходники), но мне нужна помощь, чтобы соединить точки для плющамир.

Как бы я сказал Айви, чтобы взять банку с источником?

Ответы [ 2 ]

2 голосов
/ 06 мая 2011
<?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

Благодаря Филипе Соуза

1 голос
/ 06 мая 2011

Если репозиторий является репозиторием ivy (файлы ivy.xml для артефактов), этот ответ может помочь:

Вам необходимо указать conf api проверки, который включает источники.

<dependency org="javax.validation" name="validation-api" rev="1.0.0.GA" conf="compile->sources"/>

где compile - ваша локальная конфигурация, а source - конфигурация для jar с исходниками.

Файл ivy.xml для validation-api должен выглядеть следующим образом (я не знаю, как он выглядит в вашем хранилище):

<configurations>
    <conf name="compile" visibility="public"/>
    <conf name="source" visibility="public"/>
</configurations>
<publications>
   <artifact name="validation-api" type="jar" conf="compile" ext="jar"/>
   <artifact name="validation-api-src" type="jar" conf="source" ext="jar"/>
</publications>

Это скажет ivy, что для проверки доступно два jar-файла. Один нормальный (компилировать) и один специальный (с источниками). И вам нужно будет указать, какой конф получить.

...