Использование объектов Java из другого модуля Maven в GWT на стороне клиента - PullRequest
2 голосов
/ 09 ноября 2011

У меня есть два проекта maven, проект A содержит несколько объектов сериализуемой модели, а проект B является проектом GWT. Теперь я хочу использовать некоторые объекты из проекта A для вызовов RPC между клиентом и сервером в проекте B.

так вот что я уже сделал:

Проект GWT B xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='Index'>
<inherits name='com.google.gwt.user.User' />
<inherits name='com.projectA.Models' />

<inherits name='com.google.gwt.user.theme.standard.Standard' />
<entry-point class='com.projectB.client.Index' />

<source path='client' />
<source path='shared' />

</module>

Проект Java Object A xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
<module>
<inherits name="com.google.gwt.user.User"/>
<source path="./" />
</module>

Я все еще получаю "Нет исходного кода для типа com.projectA.Object; вы забыли наследовать требуемый модуль?" сообщение = (

(зависимость POM установлена!)

Ответы [ 2 ]

7 голосов
/ 23 ноября 2011

Я понял, что мне нужно добавить это в конфигурацию плагина maven gwt в POM проекта B:

<configuration>
   <compileSourcesArtifacts>
        <compileSourcesArtifact>com.projectA:Models</compileSourcesArtifact>
   </compileSourcesArtifacts>
</configuration>

это говорит плагину Maven GWT о необходимости копировать исходные коды в веб-каталог ...Кроме того, вам необходим XML-файл GWT в пакете проекта B со следующим:

<module>
   <inherits name='com.google.gwt.user.User' />
   <source path='' />
</module>

, который указывает компилятору GWT включать источник этого модуля ..

DONE

1 голос
/ 09 ноября 2011

Просто чтобы быть ясным- структура проекта: com.projectA.ProjectA.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
<module rename-to="first-project">
<inherits name="com.google.gwt.user.User"/>
<source path="./" />
</module>

Тогда структура projectB будет иметь вид: com.projectB.ProjectB.gwt.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.4.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.4.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='Index'>
<inherits name='com.google.gwt.user.User' />
<inherits name='com.projectA.first-project' />

<inherits name='com.google.gwt.user.theme.standard.Standard' />
<entry-point class='com.projectB.client.Index' />

<source path='client' />
<source path='shared' />

</module>

Я добавляю переименование в проект gwt.xml. Пожалуйста, просмотрите код. Этот образец должен работать. Если у вашего пома правильная зависимость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...