maven-3 pom.xml

POM principal no resoluble que usa Maven 3.0.3 y la notación relativaPath



maven-3 pom.xml (8)

Después de migrar a Mavent 3.0.3 los poms principales en varios proyectos ya no se pueden resolver.

Los proyectos están estructurados de manera predeterminada, por lo que configuro parent.relativePath a "../pom.xml"

superpom (located in repository) |-rootpom (located locally: no error) |-|-parentpom (located locally: error resolving parent) |-|-|-module1 (located locally: error resolving parent) |-|-|-module2 (located locally: error resolving parent) |-|-|-module3 (located locally: error resolving parent) |-|-|-module4 (located locally: error resolving parent)

El error...

POM principal no resoluble para myGroup: myArtifactId: 1.0: No se encontró myGroup: myParentArtifactId: 1.0 en http://myRepo.net/archiva/repository/maven2 en el repositorio local, la resolución no se reintentará hasta el intervalo de actualización de maven2 ha transcurrido o las actualizaciones son forzadas y ''parent.relativePath'' apunta al POM local incorrecto @ myGroup: myParentArtifactId: 1.0, C: / myProjectDir / parent / pom.xml, línea x, columna y -> [Ayuda 2]

... parece indicar que se buscó el pom en el repositorio, así que me pregunto por qué el pom no se encontró localmente antes de que se viera en otro lugar.

He leído que maven3 puede confundirse cuando se definen varios repositorios en la configuración.xml, pero eso fue siempre cuando se busca un pom dentro de los repositorios y no localmente.

actualizar

Hasta ahora ejecutamos la compilación de Maven en el nivel de proyecto principal (parentpom), un hecho que no sabía que era importante, ya que maven2 se completó con éxito hasta ahora.

Cuando se utiliza maven3, esto parece ser importante. Al ejecutar maven3 en el nivel de proyecto raíz (rootpom), la compilación finaliza correctamente. Así que mi problema inmediato está resuelto.

Ya que no necesariamente quiero responder mi propia pregunta, tal vez alguien pueda explicar por qué maven3 se comporta de esta manera ahora o por qué el enfoque anterior estaba equivocado.


''parent.relativePath'' apunta al POM local incorrecto @ myGroup: myParentArtifactId: 1.0, C: / myProjectDir / parent / pom.xml

Esto indica que Maven buscó localmente el pom principal, pero encontró que no era el pom correcto.

  • ¿El pom.xml de parentpom define correctamente el pom parent como el pom.xml de rootpom ?
  • ¿ rootpom carpeta rootpom contiene pom.xml y la carpeta paretpom ?

Aquí está la answer a su pregunta.

Por defecto, maven busca en ../pom.xml para relativePath . Utilice la etiqueta vacía <relativePath/> lugar.


Asegúrese de verificar dos veces que la versión a la que se refiere en el child-pom sea la misma que la del pater principal. Para mí, me topé con la versión en el padre y la tuve como 3.1.0.0-RELEASE, pero en el child-pom, todavía me refería a la versión anterior a través de relativePath, y la tenía definida como 2.0.0.0-SNAPSHOT. No hizo ninguna diferencia si incluí solo el directorio principal, o si añadí el "pom.xml" al directorio:

<parent> <artifactId>eric-project-parent</artifactId> <groupId>com.eric.common</groupId> <!-- Should be 3.1.0.0-RELEASE --> <version>2.0.0.0-SNAPSHOT</version> <relativePath> ../../EricParentAsset/projects/eric-project-parent</relativePath> </parent>


Debe verificar su ruta relativa, según la profundidad de sus módulos desde el padre, si el módulo está justo debajo de la matriz, en el módulo ponga la ruta relativa como: ../pom.xml

si su nivel es 2 abajo entonces ../../pom.xml


Para mí, funciona cuando verifiqué dos veces la "identificación de grupo" y la "identificación de artefacto" de los padres, que en mi caso eran las incorrectas y ese era el problema.


Verifique los registros si tiene http.HttpWagon $ __ sisu1: No puede encontrar ''basicAuthScope'' este error o advertencia también, si es así, debe usar la versión maven 3.2.5, que resolverá el error.


Yo tuve el mismo problema. El diseño de mi proyecto parecía

/---super /---thirdparty +---mod1-root | +---mod1-linux32 | /---mod1-win32 /---mod2-root +---mod2-linux32 /---mod2-win32

En mi caso, tuve un error en mi pom.xmls en el nivel de raíz de modX. Copié el árbol de raíz mod1 y lo llamé raíz de mod2. Pensé incorrectamente que había actualizado todos los pom.xmls apropiadamente; pero, de hecho, mod2-root / pom.xml tenía los mismos ids de grupo y artefacto que mod1-root / pom.xml. Después de corregir el pom.xml de mod2-root para tener coordenadas específicas de mod2-root, mi problema se resolvió.


<parent> <groupId>com.test.vaquar.khan</groupId> <artifactId>vk-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <relativePath>../projectname/pom.xml</relativePath> </parent>

Añadir la siguiente línea en el padre

<relativePath>../projectname/pom.xml</relativePath>

Necesita una ruta relativa si está compilando desde un pom principal local no disponible en nexsus, agregue pom en nexus, entonces no necesita esta ruta