Ранее я управлял 3-модульным проектом как 3 отдельных проекта maven. Поскольку этот проект продвигался вперед, я решил, что мне следует воспользоваться преимуществами управления зависимостями maven2, чтобы упростить интеграцию между этими 3 развивающимися модулями.
Я определил супер-проект, который развертывается как POM. Здесь определяются некоторые общие зависимости, а модули определяются в POM в порядке зависимости от наименее зависимого модуля к наиболее зависимому модулю. Каждый модуль имеет определение POM обратно к родителю, и там, где он применяется, существуют зависимости от одного модуля к развернутому артефакту другого модуля. В конце я добавлю, возможно, стоящие строки pom.xml.
Что касается проблемы, я вчера настроил этот проект и смог заставить каждый модуль собирать и работать самостоятельно. Затем я возвращаюсь сегодня, чтобы поработать над одним из модулей, теперь, когда появились новые требования, и вдруг все ломается. Я редактирую проекты в Eclipse, и каждый раз, когда я изменяю файл, он больше не может разрешить ни один из классов, определенных в том же проекте. То есть, если у меня есть класс foo.bar.class1 и у него есть объект foo.bar.class2, Eclipse (и компилятор в целом) жалуется, что не может разрешить класс foo.bar.class2 ... Теперь это поражает воображение, потому что этот другой класс находится в том же проекте и пакете. Аналогичные проблемы также существуют для классов, не входящих в тот же пакет.
Есть ли что-то сломанное в моей настройке maven, или у кого-нибудь есть идеи, почему эти проекты не могут даже разрешить классы в одном пакете ??
- :: РОМ :: -
Parent -> / path / to / project / mainApp
<modelVersion>4.0.0</modelVersion>
<groupId>com.moremagic</groupId>
<artifactId>mainApp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Main App</name>
<modules>
<module>Broker</module>
<module>Soap</module>
<module>UI</module>
</modules>
Брокер -> / путь / к / проекту / mainApp / Брокер
<parent>
<artifactId>mainApp</artifactId>
<groupId>com.moremagic</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.moremagic</groupId>
<artifactId>Broker</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
Soap -> / path / to / project / mainApp / Soap
<parent>
<artifactId>mainApp</artifactId>
<groupId>com.moremagic</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.moremagic</groupId>
<artifactId>SOAP</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
...
<dependency>
<groupId>com.moremagic</groupId>
<artifactId>Broker</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
...
UI -> / path / to / project / mainApp / UI
<parent>
<artifactId>mainApp</artifactId>
<groupId>com.moremagic</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.moremagic</groupId>
<artifactId>UI</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
...
<dependency>
<groupId>com.moremagic</groupId>
<artifactId>SOAP</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.moremagic</groupId>
<artifactId>Broker</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
...