java - tutorial - MavenError: error al ejecutar el objetivo en el proyecto: no se pudieron resolver las dependencias en el proyecto de multimódulos de Maven
maven tutorial español pdf (2)
Estoy tratando de crear un proyecto multi-modulo maven. el proyecto se creó con éxito, pero cuando trato de usar un módulo como una dependencia de otro módulo, se genera una excepción. Cuando creo un módulo, utilizando eclipse, seleccioné el paquete como un frasco, pero cuando el módulo se crea, la etiqueta del paquete no se menciona en el archivo pom.xml secundario, e inserto manualmente la etiqueta del paquete como un frasco. siguiente es mi padre pom.xml
:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.netsol</groupId>
<artifactId>empirecl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
-------------------------
<modules>
<module>empirecl-web</module>
<module>empirecl-dao</module>
<module>empirecl-service</module>
<module>empirecl-api</module>
</modules>
Módulo infantil Dao:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.netsol</groupId>
<artifactId>empirecl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>empirecl-dao</artifactId>
<packaging>jar</packaging>
<name>empirecl-dao</name>
------------------------
Módulo Niño de Servicio:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.netsol</groupId>
<artifactId>empirecl</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>empirecl-service</artifactId>
<packaging>jar</packaging>
<name>empirecl-service</name>
<dependencies>
<dependency>
<groupId>com.netsol</groupId>
<artifactId>empirecl-dao</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
------------------------------------------
El módulo Dao maven limpia e instala correctamente, pero cuando intento usar el módulo de servicio, se generará una excepción:
[ERROR] Failed to execute goal on project empirecl-service: Could not resolve dependencies for project com.netsol:empirecl-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT: Failed to read artifact descriptor for com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT: Could not find artifact com.netsol:empirecl:pom:0.0.1-SNAPSHOT -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project empirecl-service: Could not resolve dependencies for project com.netsol:empirecl-service:jar:0.0.1-SNAPSHOT: Failed to collect dependencies at com.netsol:empirecl-dao:jar:0.0.1-SNAPSHOT
Estoy intentando encontrar la solución desde la web, pero aún no se encuentra la solución. En el eclipse cuando abro el módulo de Dependency Hierarchy
de Dependency Hierarchy
del servicio, se muestra el módulo DAO como una carpeta no jar. A continuación se muestra la captura de pantalla del módulo Dependency Hierarchy
de Dependency Hierarchy
del servicio.
En caso de que alguien vuelva a esto, creo que el problema aquí fue no instalar primero el pom principal, del cual dependen todos estos submódulos, por lo que el Reactor de Maven no puede recopilar las dependencias necesarias para construir el submódulo.
Entonces, desde el directorio raíz (aquí D:/luna_workspace/empire_club/empirecl
) probablemente solo necesite un:
mvn clean install
(Aparte: <relativePath>../pom.xml</relativePath>
no es realmente necesario ya que es el valor predeterminado ).
En mi caso olvidé que estaba empaquetando conflicto jar vs pom. Se me olvidó escribir
<packaging>pom</packaging>
En cada archivo pom.xml hijo