no funciona como se esperaba múltiples módulos del proyecto con Maven?
-
05-10-2019 - |
Pregunta
Hola Estoy tratando de crear un proyecto de varios módulos en Eclipse con m2eclipse. He seguido algunos tutoriales, pero la forma en que el trabajo no es lo que espero:
Esta es la estructura de mi proyecto
-Root
- webapps
- module1
- module2
Tengo pom.xml de raíz y módulos. (Módulo 1 y 2 son independientes entre sí) En el pom.xml (Root), tengo
<modules>
<module>./webapps/module1</module>
<module>./webapps/module2</module>
</modules>
En pom.xml del módulo 1:
<parent>
<groupId>{RootGroupId}</groupId>
<artifactId>{RootArtifactId}</artifactId>
<version>{RootVersionId}</version>
<relativePath>../../pom.xml</relativePath>
</parent>
En Module2, es similar al módulo 1.
Cuando voy a root y ejecute el archivo pom, se disparará fases de la raíz primera y fases del módulo posterior (la construcción del proyecto de la raíz y también construir los proyectos de módulo). Para mí, está bien.
Sin embargo, el problema ocurre cuando voy a correr el módulo 1 y pom.xml. Entonces también lo hacen el mismo: el gatillo pom.xml Raíz y pom.xml del módulo 1. No me gusta esto. What i want to be happened is ONLY the module1's pom file is triggered
(SÓLO módulo 1 se construye), no se activará pom de raíz (raíz del proyecto no se puede construir).
Cualquier ayuda, por favor.
Solución
Actualización:. Si no desea que un plugin de configuración que se aplicarán en los POM que heredan del POM donde se declara, juego inherited
para false
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<inherited>false</inherited> <!-- THIS SHOULD DO IT -->
<executions>
<execution>
<id>read-project-properties</id>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>build.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
referencia
- Maven POM Referencia
He intentado reproducir el problema ... pero no tuvo éxito. He creado una estructura de proyecto similar:
$ tree . . ├── pom.xml └── webapps ├── module1 │ ├── pom.xml │ └── src │ └── main │ └── webapp │ ├── index.jsp │ └── WEB-INF │ └── web.xml └── module2 ├── pom.xml └── src └── main ├── resources └── webapp ├── index.jsp └── WEB-INF └── web.xml
Cuando el padre pom.xml declara:
<modules>
<module>webapps/module1</module>
<module>webapps/module2</module>
</modules>
Y cada niño:
<parent>
<artifactId>Q3790987</artifactId>
<groupId>com.stackoverflow</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
Edificio de la raíz provoca una acumulación del reactor:
$ mvn install [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] Q3790987 [INFO] module1 Maven Webapp [INFO] module2 Maven Webapp [INFO] [INFO] ------------------------------------------------------------------------ ...
Sin embargo, la construcción de un niño no hace nada gatillo de la matriz:
$ cd webapps/module1/ $ mvn install [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building module1 Maven Webapp 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ ...
Todo funciona como se esperaba para mí.
(respuesta inicial eliminado, ya que parecía que malinterpretado la pregunta)