Компилятор GWT не может найти источники зависимого модуля в IntelliJ IDEA
Я использую IDEA 117.216
Было бы здорово, если бы CrazyCoder увидел этот вопрос:)
Как вы, ребята, ссылаетесь на другой модуль, чтобы компилятор GWT это видел?
Когда я говорю модуль, я имею в виду модуль в терминологии IntelliJ IDEA.
Вот моя ситуация. У меня есть средний проект (GAE + GWT + RequestFactory). Теперь я создал модуль Android в своем проекте. Идея состоит в том, что он будет использовать C2DM и общаться с сервером через RequestFactory (RF).
Естественно, я создал 3-й модуль в своем проекте и переместил туда все RF-прокси и интерфейсы, чтобы я мог ссылаться на него как из модуля GWT/GAE, так и из модуля Android.
Модулю Android это нравится, а компилятору GWT - нет. Он не может найти классы, которые я переместил в "общий" модуль. Давать мне ошибки, такие как:
[ERROR] Errors in 'file:/C:/work/sideprojects/courierapp/src/com/blah/courierApp/client/admin/AdminPage.java'
[ERROR] Line 77: No source code is available for type com.blah.shared.proxies.OrderProxy; did you forget to inherit a required module?
[ERROR] Line 81: No source code is available for type com.blah.shared.factories.AdminRequestFactory; did you forget to inherit a required module?
Я должен отметить, что модуль SharedClasses добавлен в качестве зависимости для модуля GWT. Но все же GWT не знает, где его источники.
Мне кажется, что это ошибка.
Как вы решаете это? Я действительно не хочу иметь два этапа компиляции: сначала создайте jar совместно используемых классов с исходными текстами, а затем создайте проект GWT, который ссылается на этот jar и т. Д.
2 ответа
Это больше похоже на IDEA-67661, где ответственный разработчик объясняет, почему это так:
IDEA 10 действительно включает в корень источника пути к классам только модули с фасетами GWT. Это гарантирует, что ненужные каталоги не будут добавлены в путь к классам. Кроме того, вам нужно иметь фасет GWT в модуле, чтобы включить специфичное для GWT завершение и проверки в нем...
Вы должны позволить .java
файлы в модуле. GWT компилятор работает с ними, а не с .class
файлы.