Maven2 ne peut pas trouver des parents de chemin relatif
Je suis en train d'utiliser Maven2, mais mon enfant ne peuvent pas trouver le projet parent.
Structure de répertoire est comme suit:
--parent
--pom.xml
--child
--pom.xml
Enfant pom.xml fichier ressemble à ceci:
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>myapp</artifactId>
<version>${app.version}</version>
<relativePath>.../parent/pom.xml</relativePath>
</parent>
Cependant quand j'utilise maven il n'a même pas l'impression de regarder dans le chemin d'accès relatif, il semble à essayer de le télécharger à partir du référentiel. Il n'est évidemment pas dans le repo. Je veux qu'il regarde le chemin d'accès relatif. Ce que je fais mal? Voici le message d'erreur:
[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
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser une propriété pour la version parent - elle doit correspondre. Pour le moment ce n'est requise pour la génération d'être reproductible à une date ultérieure. Un certain nombre de personnes sont le suivi de cette question https://issues.apache.org/jira/browse/MNG-624
À ma connaissance, l'expansion des variables qui ne fonctionne pas dans l'élément parent (voir MNG-624 et commentaires pour l'arrière-plan autour de), vous devez définir la version explicitement:
Par ailleurs, si vous souhaitez utiliser la même version pour tous vos modules, vous devez simplement hériter à votre enfant de projet, c'est à dire de ne pas le remplacer (il n'y a pas de réel besoin pour un
${app.version}
OMI), et non pas l'inverse.Ce que j'ai trouvé était qu'il fallait installer le parent pom d'abord, puis par la suite les enfants pdm peut les lire à partir du référentiel.
utilisation:
mvn -N install
Cela va installer le pom parent sans courir à l'autre enfant de pdm.
Il devrait être:
Vous pouvez avoir le type d'emballage et/ou l'id de version ne correspond pas. J'ai eu la même erreur que vous, mais joué avec le type d'emballage et réussi à le faire fonctionner. Essayez les solutions suivantes.
Voici fragment de la mère pom.xml. Le type d'emballage est "pom". Je n'ai pas de code pour l'application parente, seule une pom.xml pour le partage:
Enfant pom.xml. C'est une webapp si l'emballage de type "guerre":
Le problème est probablement que vous avez utilisé
.../
au lieu de../
.