Изменения в зависимых модулях нельзя увидеть в других модулях в Maven Eclipse - PullRequest
2 голосов
/ 07 октября 2010

Я работаю над многомодульным проектом с m2eclipse.Я установил maven, чтобы позаботиться о разрешении зависимостей рабочей области.Но когда я делаю изменения, скажем, на сервисном модуле, изменения сразу не видны на других модулях.Если я создаю новый метод в слое Service, он не виден в слое WebApp.Иногда даже Запуск / установка maven и обновление и Проект / очистка и Зависимости Maven / Update не работает.Может кто-нибудь дать мне представление об этой проблеме?

Структура моего проекта выглядит следующим образом:

родительский модуль

<groupId>com.myproject</groupId>
<artifactId>einvites-parent</artifactId>
<modules>
  <module>myproject-common</module>
  <module>myproject-domain</module>
  <module>myproject-service</module>
  <module>myproject-web</module>
</modules>

сервисный модуль

<parent>
    <artifactId>myproject-parent</artifactId>
    <groupId>com.myproject</groupId>
    <version>1.0</version>
</parent>
<groupId>com.myproject</groupId>
<artifactId>myproject-service</artifactId>

веб-модуль

<parent>
    <artifactId>myproject-parent</artifactId>
    <groupId>com.myproject</groupId>
    <version>1.0</version>
</parent>
<groupId>com.myproject</groupId>
<artifactId>myproject-web</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>myproject-web</name>
<dependencies>
    <dependency>
        <groupId>com.myproject</groupId>
        <artifactId>myproject-service</artifactId>
        <version>1.0</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
</dependencies>

1 Ответ

0 голосов
/ 07 октября 2010

Это должно работать; и это для меня. Я действительно не уверен, что это решит проблему, но мог бы попытаться изменить ваше POM на использование версии SNAPSHOT, то есть что-то вроде 1.0-SNAPSHOT (вы все равно должны использовать версии SNAPSHOT для модулей в активной разработке) .

Кстати, в ваших POM много ненужных и лишних вещей. Они должны выглядеть так:

сервисный модуль

<project>
  ...
  <parent>
    <artifactId>myproject-parent</artifactId>
    <groupId>com.myproject</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <!--groupId>com.myproject</groupId--> <!-- no need, you inherit it -->
  <artifactId>myproject-service</artifactId>
  ...
</project>

веб-модуль

<project>
  ...
  <parent>
    <artifactId>myproject-parent</artifactId>
    <groupId>com.myproject</groupId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <!--groupId>com.myproject</groupId-->  <!-- no need, you inherit it -->
  <artifactId>myproject-web</artifactId>
  <!--version>1.0</version-->  <!-- no need, you inherit it -->
  <packaging>war</packaging>
  <name>myproject-web</name>
  <dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId> <!-- use the built-in properties instead -->
        <artifactId>myproject-service</artifactId>
        <version>${project.version}</version> <!-- use the built-in properties instead -->
        <!--type>jar</type-->  <!-- no need, that's the default -->
        <!--scope>compile</scope--> <!-- no need, that's the default -->
    </dependency>
  </dependencies>
  ...
</project>
...