2010-03-05 10 views
12

Estoy intentando usar Maven2 pero mis proyectos secundarios no pueden encontrar el proyecto principal.Maven2 no puede encontrar el elemento primario de la ruta relativa

estructura de directorio es la siguiente: pom.xml

--parent 
    --pom.xml 
--child 
    --pom.xml 

niño se parece a:

<parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>myapp</artifactId> 
    <version>${app.version}</version> 
    <relativePath>.../parent/pom.xml</relativePath> 
</parent> 

Sin embargo cuando utilizo experto que ni siquiera parece que mirar en la ruta relativa, parece intentar descargarlo del repositorio de maven. Obviamente no está en el repositorio. Quiero que vea la ruta relativa. ¿Qué estoy haciendo mal? Aquí está el mensaje de error:

[INFO] Scanning for projects... 
Downloading: http://repo1.maven.org/maven2/com/mycompany/app/myapp/${app.version}/myapp- 
${app.version}.pom 
[INFO] Unable to find resource 'com.mycompany.app:myapp:pom:${app.version}' in reposit 
ory central (http://repo1.maven.org/maven2) 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error building POM (may not be this project's POM). 


Project ID: null:web:jar:null 

Reason: Cannot find parent: com.mycompany.app:myapp for project: null:web:jar:null for 
project null:web:jar:null 

Respuesta

16

No puede usar una propiedad para la versión principal; debe coincidir. Por el momento, esto es necesario para que la construcción sea reproducible en una fecha posterior. Varias personas están siguiendo esto en el número https://issues.apache.org/jira/browse/MNG-624

1

que debe ser:

<parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>myapp</artifactId> 
    <version>${app.version}</version> 
    <relativePath>../parent/pom.xml</relativePath> 
</parent> 
+0

Ese no es el problema (era solo un error tipo IMO), esto no funciona. –

+0

Esto todavía ayudó, la documentación de maven en línea (http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Example_2) en realidad usa ... que creo que es un error tipográfico en su sitio web – vagabond

11

Que yo sepa, la expansión de variables no funciona en el elemento padre (ver MNG-624 y comentarios para el fondo en torno a este), es necesario para establecer la versión explícita:

<parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>myapp</artifactId> 
    <version>1-SNAPSHOT</version><!-- or whatever version you use --> 
    <relativePath>../parent/pom.xml</relativePath> 
</parent> 

por cierto, si desea utilizar la misma versión para todos sus módulos, simplemente debe heredarlo en su proyecto secundario es decir, no anularlo (no hay una necesidad real de un ${app.version} IMO), no al revés.

+0

Funcionó para mí después de señalar la ruta pom.xml. –

1

Es posible que el tipo de embalaje y/o ID de la versión no coincidan. Recibí el mismo error que tú, pero jugué con el tipo de paquete y lo puse a funcionar. Prueba lo siguiente.

El siguiente es un fragmento del padre pom.xml. El tipo de embalaje es "pom". No tengo ningún código para la aplicación de los padres, sólo pom.xml común para compartir: pom.xml

... 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>parent</artifactId> 
    <version>${app.version}</version> 
    <packaging>pom</packaging> 

del niño. Se trata de una aplicación web por lo que es el embalaje Tipo "guerra":

<parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>parent</artifactId> 
    <version>${app.version}</version> 
    <relativePath>../parent/pom.xml</relativePath> 
    <packaging>war</packaging> 
</parent> 
1

El problema es probable que se utilizó en lugar de .../../.

+0

(Usted ha puesto "... /" Quiero decir, en lugar de "../") – tzrtzer

7

Lo que encontré fue que primero necesitaba instalar el pom principal, y los poms secundarios posteriores pueden leerlos del repositorio.

uso: mvn -N install

Esto instalará el pom padres sin correr los otros poms del niño.

Cuestiones relacionadas