Errai - Отдельный клиентский и серверный код

В прошлых проектах GWT я использовал этот archetype для создания трехмодульного проекта. Он разделяет клиентский код, серверный код и код, совместно используемый ими обоими. Это позволило значительно ускорить разработку, поскольку вам не нужно было перекомпилировать весь проект каждый раз, когда вы вносили изменения на стороне сервера.

Теперь я хотел бы использовать Errai, чтобы воспользоваться его более естественной системой шаблонов. Я изо всех сил старался просто импортировать errai-ui и связанные с ним зависимости, но не смог заставить это работать. После поиска кажется, что Errai предназначен для использования в качестве фреймворка, а не библиотеки. Вы можете увидеть мой вопрос SO по этой теме здесь.

Я нашел эту тему, где кто-то сделал именно то, что мне было нужно. Хотя они вообще не написали, как они это сделали.

Я нашел это руководство, в котором показано, как добавить Errai в существующий проект GWT, но это предполагает, что ваш проект GWT настроен в стандартном одиночном модуле, чего я не хочу.

Моя главная проблема в том, что я не знаю, что нужно в файлах pom, чтобы это работало. Я хочу использовать только клиентские функции Errai, такие как errai-ui и errai-navigation, поэтому я полагаю, что Errai может работать исключительно в клиентском модуле. Однако при создании нового проекта Errai в pom так много всего, и я не знаю, как передать это родительскому и клиентскому pom.

В идеале мне просто нужен пример или каркас проекта, чтобы начать работу. Если этих вещей просто не существует, мы будем очень признательны за подсказку в правильном направлении.


person Troncoso    schedule 02.09.2016    source источник
comment
Я понимаю, что этот вопрос может лучше подходить для форума, но я пытался опубликовать сообщение на форуме Errai (JBoss), и администратор не принял мой пост. Если нужны дополнительные подробности, я могу их предоставить.   -  person Troncoso    schedule 02.09.2016
comment
Я бы порекомендовал начать с базового руководства и получить представление об ошибках, прежде чем вы начнете навязывать свою собственную архитектуру. В любом случае, это сводится к использованию предложенной обучающей установки в качестве вашего клиентского проекта. Вашему серверному проекту ничего не нужно, если вы не хотите использовать части, связанные с сервером, такие как события/сортировка. То же самое для вашего общего проекта. У меня есть более старый проект errai в общедоступном репозитории, возможно, это поможет bitbucket. org/k5_/greenfield/src/   -  person k5_    schedule 02.09.2016


Ответы (1)


Вам нужно использовать Maven и иметь такие родительские и дочерние проекты:

<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany.app</groupId>
<artifactId>parent</artifactId>
<version>0-SNAPSHOT</version>
<name>APP::Parent</name>
<packaging>pom</packaging>

<modules>
  <module>client</module>
  <module>server</module>
  <module>shared</module>
</modules>

</project>

Таким образом, ваши коды сервера и коды клиентов разделены и импортируют зависимость shared в client и server.

Надеюсь, это поможет.

person quarks    schedule 08.09.2016
comment
Это работа, когда вы не хотите использовать только errai на клиенте. Это не будет работать для серверной или общей стороны. - person masterdany88; 16.02.2017