2015-05-05 3 views
0

В настоящее время я пытаюсь создать проект GWT, а не совершенно новый, я только заменил некоторые зависимости или. Я представил новые.Как сделать исходный код зависимых проектов доступным для компилятора gwt?

У меня есть проект с несколькими проектами, который генерирует много java-файлов (dto) с помощью xtext. В результате одного из этих проектов создаются файлы .jar и source.jar.

Эти банки добавлены в качестве зависимостей maven.

<dependency> 
    <groupId>com.xxx.xxx</groupId> 
    <artifactId>xxx-gwt</artifactId> 
    <version>${xxx.version}</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>com.xxx.xxx</groupId> 
    <artifactId>xxx-gwt</artifactId> 
    <version>${xxx.version}</version> 
    <classifier>sources</classifier> 
    <scope>provided</scope> 
</dependency> 

У Eclipse не было ошибок. В проводнике пакетов доступны зависимости maven.

Если я пытаюсь скомпилировать мой проект GWT с новыми зависимостями я получаю следующее сообщение об ошибке:

[ERROR] Errors in 'file:/C:/xxx/.../.../.../xxxDetailPresenterImpl.java' 
[INFO]   [ERROR] Line 82: No source code is available for type com.xxx.xxx.dto.xxxDetailResultSetDto; did you forget to inherit a required module? 

Любая идея? Все зависимые проекты, которые используются в клиентской части, должны быть доступны в качестве источников. Этот проект доступен в качестве источников ...

Я читал о возможности определения модуля в проектах, на которые ссылаются, и впоследствии наследует его в gwt.xml. Но, честно говоря, я не знаю, как, потому что зависимый проект полностью автоматически генерируется. Eclipse сказал, что это даже не проект Java.

+0

Я решил проблему, создав gwt.xml в зависимый проект и наследующий его в моем текущем. Нет, все хорошо. Спасибо, парни. – NiceGuy

ответ

3

Да. Все зависимые проекты, которые используются в клиентской части, должны быть доступны в качестве источников для компиляции GWT. Для вас случае,

  1. Вам нужно создать модуль скелет Maven в затмении,
  2. Для этого модуля структуры необходимо сгенерировать весь исходный XText.
  3. Создать gwt.xml в этом модуле скелете
  4. Include следующего вы POM, чтобы указать местоположение этого gwt.xml в GWT Maven компилятора

    <resources> 
        <resource> 
         <directory>src/main/java</directory> 
         <includes> 
          <include>**/*.java</include> 
          <include>**/*.gwt.xml</include> 
         </includes> 
        </resource> 
    </resources> 
    
  5. Добавьте этот модуль в зависимости к текущий модуль

  6. Сначала установите зависимый модуль. Затем

  7. Установите текущий модуль.

Надеюсь, что это сработает. Благодаря

+0

Где должен быть модуль скелета maven и gwt.xml? Я понимаю, что вы хотите сделать, но я не совсем понимаю, как его применять. – NiceGuy

+0

Создайте новый проект gwt maven в рабочем пространстве eclipse. 1. Щелкните правой кнопкой мыши Новый проект Maven -> Дайте название проекта -> Далее -> Выберите org.cohouse.mojo maven plugin .... добавьте проект. Он автоматически создаст структуру проекта для вас –

1

Если вы используете GWT-Mavent плагин:

http://mojo.codehaus.org/gwt-maven-plugin/user-guide/project.html#Multi-project_setup

В двух словах, вот что вам нужно сделать

В вашем главном проекте, в конфигурации части GWT-мавена плагин

<configuration> 
... 
<compileSourcesArtifacts> 
    <artifact>com.xxx.xxx:xxx-gwt</artifact> 
</compileSourcesArtifacts> 
</configuration> 

Внутри YOURAPP.gwt.XML не забудьте добавить классы, которые должны быть составлены

<inherits name='com.xxx.xxx' /> 
... 

<source path='com/xxx/xxx/client' /> 

Внутри проекта, от которого вы хотите использовать источники

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <version>2.6.1</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>source-jar</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
Смежные вопросы