Hudson construire l'échec: Non résolu POM parent
J'ai l'habitude de travailler avec Hudson sur mon projet, et, dernièrement, j'ai dû le déplacer vers un nouveau serveur.
J'ai configuré exactement de la même manière qu'il utilise (pour tout ce que je peux dire) mais quand j'essaie de lancer un build, il échoue et j'obtiens l'erreur suivante:
Démarré par l'utilisateur anonymous
Checking out http://[...]/trunk/MyProject/ear
A .classpath
A .project
A target
AU target/ear-1.0-SNAPSHOT.ear
A target/application.xml
A target/ear-1.0-SNAPSHOT
A target/ear-1.0-SNAPSHOT/META-INF
A target/ear-1.0-SNAPSHOT/META-INF/application.xml
AU target/ear-1.0-SNAPSHOT/web-1.0-SNAPSHOT.war
AU target/ear-1.0-SNAPSHOT/business-1.0-SNAPSHOT.jar
A pom.xml
A .settings
A .settings/org.eclipse.jdt.core.prefs
A .settings/org.maven.ide.eclipse.prefs
At revision 136
no change for http://[...]/trunk/MyProject/ear since the previous build
Found mavenVersion 3.0.2 from file jar:file:/usr/share/maven/apache-maven-3.0.2/lib/maven-core-3.0.2.jar!/META-INF/maven/org.apache.maven/maven-core/pom.properties
Parsing POMs
ERROR: Echec à la lecture des POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Could not find artifact com.rha:MyProject:pom:1.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 9, column 10
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:325)
at hudson.maven.MavenEmbedder.buildProjects(MavenEmbedder.java:360)
at hudson.maven.MavenEmbedder.readProjects(MavenEmbedder.java:330)
at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1148)
at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:991)
at hudson.FilePath.act(FilePath.java:756)
at hudson.FilePath.act(FilePath.java:738)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.parsePoms(MavenModuleSetBuild.java:698)
at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:531)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:420)
at hudson.model.Run.run(Run.java:1362)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:405)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:145)
Finished: FAILURE
L'pom.xml fichier quand je suis arrivé à Hudson "espace de travail" ressemble à ceci:
[...]
<parent>
<groupId>com.rha</groupId>
<artifactId>MyProject</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
[...]
<dependencies>
<dependency>
<groupId>com.rha</groupId>
<artifactId>business</artifactId>
<version>1.0-SNAPSHOT</version>
<type>ejb</type>
</dependency>
<dependency>
<groupId>com.rha</groupId>
<artifactId>web</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
</project>
[Modifier]
En fait j'ai oublié quelques infos importantes:
Mon projet est divisé en 3 parties:
d'affaires (emballé dans .jar)
web (emballés dans une .guerre)
oreille (emballés .guerre et .jar dans un .de l'oreille)
Je suis en utilisant la Subversion, et en vertu de mon "coffre" dossier j'ai eu un "MyProject" dossier comprenant:
.project
.settings/
business/
ear/
pom.xml
src/
web/
ce qui se passe est:
dans ma Hudson de configuration de travail, j'ai rempli le SVN champ référentiel "URL":
http://[...]/trunk/Monprojet/oreille
et voici la "pom.xml" à partir de "MyProject" dossier:
<?xml version="1.0" encoding="UTF-8"?>
<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
[...]
<modules>
<module>business</module>
<module>web</module>
<module>ear</module>
</modules>
[...]
de sorte que le parent "pom.xml" est en fait situé à l' "../pom.xml" sur mon dépôt SVN, en vertu de "trunk/Mondossier".
Mais Hudson ne pouvez pas le voir pour une raison quelconque (mais comme je l'ai dit, il permet de travailler sur le serveur précédent).
La moindre idée ?
[/Edit]
Je suppose que c'est une erreur de débutant, je suis un total débutant sur Maven, mais je ne peux pas comprendre pourquoi ça ne marche plus ...
Toute aide sera grandement appréciée !
Nicolas
Raminfar: voir mon edit =)
OriginalL'auteur Nicolas | 2011-03-02
Vous devez vous connecter pour publier un commentaire.
relativePath
(de laparent
) la valeur par défaut../pom.xml
. On dirait qu'il n'est pas présent là-bas. Vous pouvez l'installer à une valeur vide, de sorte que maven télécharge comme une dépendance.Ce lien explique cette.
[Edit: sur la base des modifications apportées à la question]
Hudson ne voit que le code source à l'intérieur de l'oreille dossier. Si le pom parent est présent dans le SVN, il n'est pas disponible à Hudson. Parent manquant pom a aa avertissement dans Maven 2, mais stricte dans Maven 3.
Il y a deux façons de résoudre ce problème.
On est à préciser à hudson, l'url
http://[...]/trunk/MyProject/
. Vous pouvez alors choisir de construire tous les modules ou encore choisir de construire lapom.xml
de l'oreille projet seul.L'autre est d'exécuter manuellement
mvn install
sur l'hudson système, de sorte que le parent pom est déployé une fois et par la suite utilisé par hudson. Cependant, ce ne seront pas mis à jour si le parent pom est modifié par la suite.Merci beaucoup pour la réponse ! J'ai modifier l'URL " http://[...]/trunk/Monprojet/` alors maintenant, je peux voir les 3 modules. Je suis allé à "l'oreille" du module et de configurer Maven pour objectif de
clean package cargo:redeploy -P integration
mais en essayant de construire, j'ai eu la suivante:[...] <===[HUDSON REMOTING CAPACITY]===>channel started Finished: ABORTED
. Il en fait construire rien =/J'ai finalement opté pour le
mvn install
méthode. Il ne fonctionne pas mais je n'aime pas le fait que le parent pom.xml ne peut pas être mis à jour ... merci beaucoup en tout cas !Un travail autour de la mère pom.xml problème de mise à jour est d'avoir un jenkins, maven emploi qu'il suffit de l'installer et est déclenchée, comme d'autres emplois, comme un bonus, si le parent pom est mis à jour toutes dépendantes de l'emploi sera de reconstruire
Cette réponse m'a sauvé beaucoup de temps. Juste eu un problème similaire avec le Printemps dans l'Action des exemples. J'ai copié sur mon Workspace Eclipse, mais je n'ai pas remarqué le POM parent, qui était dans le dossier ci-dessus.
OriginalL'auteur Raghuram
De l'extraction de la Racine-POM de le Maven-PENSIONS doivent généralement travailler aussi (comme vous le faites), mais je m'attends à ce que vous havn pas déclenché la racine pom pour être installé dans le REPO sur la nouvelle hudson site jusqu'à présent.
Pour éviter cela, utilisez la relativePath de la propriété, par exemple, quelque chose comme ceci:
dans votre
<parent>
balise qui va dire maven chercher la racine pom dans votre structure de module.[FATAL] Non-resolvable parent POM: Could not find artifact com.rha:MyProject:pom:1.0-SNAPSHOT and 'parent.relativePath' points at wrong local POM @ line 9, column 10
Comme le message d'erreur dit: le path relatif propriété est définie sur un mauvais chemin, par exemple si votre pom est dans /home/test/projet/moduleA et de la racine de votre pom est dans /home/test/projet/ puis vous ajoutez "../pom.xml" comme mentionné ci-dessus.
OriginalL'auteur HefferWolf
J'ai eu le même problème avec Hudson, Sonar plugin et un multi-module de projet Maven: "Non résolu parent POM" quand Hudson a essayé de lancer sonar:sonar. La solution a été de spécifier la Racine POM emplacement dans l'Hudson de configuration de travail en vertu de la Sonar section.
La structure du projet dans le SVN (chacun est un projet Maven avec pom.xml dans la racine du projet):
J'ai individu Hudson emplois pour chaque projet, "foo-parent", "foo-interface utilisateur-module" et "bar-autres-module". Le Sonar exécuter dans une Hudson travail ne peut pas trouver le parent POM même si la construction a été un succès jusqu'à ce point. Peut-être que le Sonar plugin n'utilise pas les mêmes Maven paramètres comme le reste de l'emploi, parce qu'il n'a pas essayer de regarder pour le POM parent de notre Artifactory référentiel, pas même avec
<relativePath/>
dans le projet POM.La place de la Racine POM réglage du travail de configuration -> Sonar -> Avancé> Root POM:
../foo-parent/pom.xml
(j'ai foo-parent de l'emploi dans ce chemin d'accès)OriginalL'auteur apa64
Nous avons réussi à le faire fonctionner simplement en supprimant la pertinente pom fichier, plus une sorte de fichier de métadonnées avec un nom similaire dans le même dossier, à partir de la
.m2/repository/a/b/c
dossier sur notre serveur jenkins.La reprise de l'jenkins construire après avoir fait cela a très bien fonctionné.
Espère que cela aide quelqu'un...
OriginalL'auteur vikingsteve