Вы не должны располагать артефакты, как вы описали в структуре каталогов.
+-- Company-parent (pom.xml)
+-- Project-parent (pom.xml)
+----Module1 (pom.xml)
+----Module2 (pom.xml)
+----ModuleN (pom.xml)
Чтобы по-настоящему эффективно использовать вашу компанию-родителя (pom.xml), она должна быть выделена в отдельную область в управлении версиями и выпущена отдельно в вашем менеджере репозитория (nexus, artifactory, archiva ...). Это приведет к следующей структуре:
+-- Company-parent (pom.xml) (Separate Project)
Компания-родитель должна выпускаться так часто, как это необходимо через релиз-плагин. Допустим, мы выпустили версию 1.0 компании-родителя. Причина его разделения заключается в том, что компания-родитель используется многими проектами, а не только одним проектом.
и реальные проекты должны быть помещены в отдельную папку (также в управлении версиями):
+-- Project-parent (pom.xml)
+----Module1 (pom.xml)
+----Module2 (pom.xml)
+----ModuleN (pom.xml)
Таким образом, чтобы использовать компанию-родителя в вашем проекте, проект-родитель должен выглядеть следующим образом:
<project....>
<modelVersion>4.0...</modelVersion>
<parent>
<artifactId>company-parent</artifactId>
<groupId>com.company.base</groupId>
<version>1.0</version>
</parent>
<packaging>pom</packaging>
<groupId>com.company.project1</groupId>
<artifactId>project-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
...
<dependencyManagement>
<!-- Project specific dependencies -->
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<!-- Project specific plugins. Better use them of the company pom -->
</plugins>
</pluginManagement>
</build>
<modules>
<module>module1</module>
<module>module2</module>
<module>moduleN</module>
</modules>
..
Теперь давайте взглянем на модуль, который должен выглядеть следующим образом:
<project....>
<modelVersion>4.0...</modelVersion>
<parent>
<artifactId>project-parent</artifactId>
<groupId>com.company.project1</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<packaging>jar</packaging>
<artifactId>module1</artifactId>
<dependencies>...</dependencies>
<build>..</build>