У меня есть 2 проекта Eclipse. Один - это проект gwt, а другой - нет. Вот структура каталогов, которая мне подходит:
workspace
-- gwt-project
-- src/main/java
-- com.gwt.GwtProjectModule
-- GwtProjectModule.gwt.xml
-- non-gwt-project
-- src/main/java
-- com.nongwt.package.that.contains.source.you.need
-- nongwt.gwt.xml
-- com.nongwt.package.that.contains.source.you.need.client
nongwt.gwt.xml указывает gwt заглянуть внутрь «клиентского» пакета, вот как это выглядит:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='nongwt'>
<inherits name='com.google.gwt.user.User' />
<source path="client" />
</module>
GwtProjectModule.gwt.xml затем может наследовать исходный код от nongwt. Вот соответствующая строка из GwtProjectModule.gwt.xml:
<inherits name="com.nongwt.package.that.contains.source.you.need.nongwt" />
Убедитесь, что вы включили не-gwt-project в путь к классам gwt-project в eclipse. Это обычное упражнение; щелкните правой кнопкой мыши gwt-project, выберите свойства, выберите «Java Build Path», щелкните вкладку «Projects» и «non-gwt-project»
Или вместо включения non-gwt-project в путь к классам gwt-project как ссылку на проект, вы также можете jar содержимое не-gwt-project, убедитесь, что вы включили источник в jar,
GWT не знает об этом другом коде, потому что его нет в клиентском каталоге вашего проекта. Вам необходимо добавить исходный путь для другого кода в файл .gwt.xml. Просто добавил его в xml следующим образом
<source path="common" />
common - это каталог, в котором находится дополнительный код для этого примера.
Ознакомьтесь с разделом XML Element Reference этого документа
Клиентский код в вашем проекте GWT (классы в клиентском пакете) не может ссылаться ни на какие классы, которых нет в модуле GWT.
Если у вас есть код в другом проекте, на который вы хотите ссылаться из клиентского кода в своем проекте GWT, вам необходимо:
<наследует name = 'com.yourCompany.otherProject.MyOtherProject' />
Boden: добавьте следующее в файл модуля
<source path=""></source>
в дополнение к другим источникам, например:
<source path=""></source>
<source path="com.acme.otherpackage"></source>
, тогда компилятор не будет жаловаться.
По крайней мере, так я решил Это. Не уверен, что использование path = "" позволяет включать все, я предполагаю, что это значение по умолчанию, когда не указаны источники.
В проекте gwt перейдите в свойства, путь сборки Java, источник, нажмите "link source" и укажите на исходный пакет вашего не-gwt проекта, который вы хотите включить.