Проект Eclipse 3.4 GWT 1.6 - как к опорному источнику из других проектов?

5 ответов

У меня есть 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,

16
ответ дан 30 November 2019 в 04:40
поделиться

GWT не знает об этом другом коде, потому что его нет в клиентском каталоге вашего проекта. Вам необходимо добавить исходный путь для другого кода в файл .gwt.xml. Просто добавил его в xml следующим образом

<source path="common" />

common - это каталог, в котором находится дополнительный код для этого примера.

Ознакомьтесь с разделом XML Element Reference этого документа

0
ответ дан 30 November 2019 в 04:40
поделиться

Клиентский код в вашем проекте GWT (классы в клиентском пакете) не может ссылаться ни на какие классы, которых нет в модуле GWT.

Если у вас есть код в другом проекте, на который вы хотите ссылаться из клиентского кода в своем проекте GWT, вам необходимо:

  • Убедитесь, что он полностью «безопасен для GWT», что означает, что он не ссылается на какие-либо классы JRE, которые не эмулируются GWT ( http://code.google.com/webtoolkit/doc/1.6/RefJreEmulation.html ) или ссылаться на любые классы, которые ссылаются на классы JRE, не эмулируемые
  • Убедитесь, что все указанные классы находятся в GWT модуль. Это означает размещение файла MyOtherProject.gwt.xml в другом вашем проекте, и все указанные классы должны находиться в клиентском подпакете.
  • Сделайте ваш проект GWT унаследованным от другого проекта. Поэтому добавьте в файл модуля gwt.xml вашего проекта GWT следующее:

<наследует name = 'com.yourCompany.otherProject.MyOtherProject' />

1
ответ дан 30 November 2019 в 04:40
поделиться

Boden: добавьте следующее в файл модуля

<source path=""></source>

в дополнение к другим источникам, например:

<source path=""></source>
<source path="com.acme.otherpackage"></source>

, тогда компилятор не будет жаловаться.

По крайней мере, так я решил Это. Не уверен, что использование path = "" позволяет включать все, я предполагаю, что это значение по умолчанию, когда не указаны источники.

1
ответ дан 30 November 2019 в 04:40
поделиться

В проекте gwt перейдите в свойства, путь сборки Java, источник, нажмите "link source" и укажите на исходный пакет вашего не-gwt проекта, который вы хотите включить.

0
ответ дан 30 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: