Maven Multi-Module De Projet, De Ne Pas Résoudre Les Dépendances
J'ai un multi-module de projet maven que je n'arrive pas à compiler. J'ai un Nexus référentiel assis sur mon réseau local, et il est de travail (IntelliJ Idea est en mesure de résoudre mon dépendances qui se trouvent uniquement dans ce référentiel), et je suis bâtiment par Jetbrains TeamCity. Je suis assez certain que TeamCity travaille depuis plusieurs autres configurations de build j'ai encore du travail (à l'aide de la même settings.xml). Je suis un peu une perte de ce qui pourrait être la cause du problème. Voici mon pom fichiers:
Parent pom:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.product.plugins</groupId>
<artifactId>plugin-parent</artifactId>
<version>1.2-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>product-wireless-plugin</module>
<module>product-paging-plugin</module>
</modules>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://192.168.2.192:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.2.192:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<pluginRepositories>
<pluginRepository>
<id>autoincrement-versions-maven-plugin</id>
<name>autoincrement-versions-maven-plugin</name>
<url>http://autoincrement-versions-maven-plugin.googlecode.com/svn/repo</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>autoincrement-versions-maven-plugin</artifactId>
<version>2.0-SNAPSHOT</version>
<executions>
<execution>
<id>update-pom-versions</id>
<goals>
<goal>increment</goal>
<goal>commit</goal>
</goals>
<phase>compile</phase>
<configuration>
<autoIncrementVersion>true</autoIncrementVersion>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
</project>
produit-sans fil pom:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>plugin-parent</artifactId>
<groupId>com.company.product.plugins</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.product.plugins</groupId>
<artifactId>product-wireless-plugin</artifactId>
<version>0.1.2</version>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://192.168.2.192:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.2.192:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>com.company.product</groupId>
<artifactId>product-common</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies>
</project>
produit de pagination pom:
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>plugin-parent</artifactId>
<groupId>com.company.product.plugins</groupId>
<version>1.2-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.company.product.plugins</groupId>
<artifactId>product-paging-plugin</artifactId>
<version>0.1.2</version>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://192.168.2.192:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://192.168.2.192:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<dependency>
<groupId>com.company.product</groupId>
<artifactId>product-common</artifactId>
<version>0.9.1</version>
</dependency>
</dependencies>
</project>
Et l'erreur que je reçois est:
com.de l'entreprise.produit.plugins:produit-sans fil-plugin
[13:54:16][com.de l'entreprise.produit.plugins:produit-sans fil-plugin] l'Importation de données à partir de 'C:/TeamCity/buildAgent/work/40ac813105cf8bd7/product-wireless-plugin/target/surefire-reports/TEST-*.xml "avec la" infaillible " processeur
[13:54:16][com.de l'entreprise.produit.plugins:produit-sans fil-plugin] Infaillible rapport de l'observateur de
[13:54:16][com.de l'entreprise.produit.plugins:produit-sans fil-plugin] Téléchargement: repolocation/nexus/content/groups/public/com/company/product/product-parent/0.9.0/product-parent-0.9.0.pom
[13:54:16][com.de l'entreprise.produit.plugins:produit-sans fil-plugin] Échec de l'exécution de l'objectif du projet produit-sans fil-plugin: impossible de résoudre les dépendances de projet com.de l'entreprise.produit.plugins:produit-sans fil-plugin jar:0.1.2: impossible de recueillir des dépendances [com.de l'entreprise.produit:-commune:jar:0.9.1 (compilation)]
Je suis vraiment à une perte, tout en essayant de débogage... quelqu'un aurait-il des suggestions?
-X
drapeau.Si vous pouviez poster votre commentaire en réponse, je vais l'accepter. J'ai été capable de trouver le problème à l'aide de cette méthode de débogage.
OriginalL'auteur Brendon Dugan | 2013-06-18
Vous devez vous connecter pour publier un commentaire.
Il existe plusieurs approches /outils pour résoudre ce genre de problème.
Pour cela "n'a pas pu résoudre les dépendances" erreur, il n'y a presque toujours un message d'erreur plus détaillé et/ou stacktrace plus tôt dans le journal de génération. Maven journaux sont en fait extrêmement détaillé, au point d'avoir à les rechercher à la "racine" de message d'erreur plusieurs écrans à partir de la génération de l'échec.
Ré-exécuter le construire avec le
-X
drapeau. Voici la documentation de Maven en ligne de commandeUne autre option est d'utiliser
mvn dependency:tree
d'inspecter la totalité du graphe de dépendances transitives.mvn help:effective-pom
est un autre outil utile qui permet d'afficher le pom.xml après examen de votre settings.xml, tout de profils actifs, etc. De mêmemvn help:active-profiles
OriginalL'auteur noahlz
Ok, j'ai résolu le problème grâce à l'entrée de @noahlz. Après l'utilisation de l'option-X pour déboguer mon build, j'ai découvert que le pom parent de "produit" (product-mère) n'a pas pu être trouvé. Après avoir profité de mon Sonatype Nexus référentiel, j'ai découvert que mon build n'était que de la publication de nouvelles versions de la société mère pom lorsque de nouveaux modules ont été ajoutés. Donc, même si mes parents pom était sur la version 0.9.0, le référentiel a la dernière version 0.6.1. Je suppose que le produit "commun" de la bibliothèque a été de compiler correctement parce qu'elle avait accès à la société mère pom (avec le numéro de version 0.9.0) au moment de la compilation. De toute façon, la modification de la mère pom version de produit "commun", pour souligner le plus récent dans le référentiel résolu mes problèmes de génération avec mes plugins.
OriginalL'auteur Brendon Dugan
Il y a beaucoup de problèmes dans votre multi-module de construire. Le plus important est que vous définissez une dépendance:
qui semblait ne pas être existante dans un référentiel ou vous n'avez pas accès au répertoire qui le contient ou de votre téléchargement a échoué quelque en soit la raison (peut pas le deviner!). Utilisez-vous un gestionnaire de référentiel comme Artifactory, Nexus, Archiva? Si non, je vous recommandons de commencer à l'utiliser.
En dehors de cela, vous utilisez différentes versions pour les parents et le module sans fil-module:
Un multi module de construire devrait définir la version uniquement via le parent et pas au sein de l'artefact, ce qui signifie que le ci-dessus devrait ressembler à ceci:
Le module ne doit pas définir une version de lui-même, parce qu'il va hériter de son parent. En outre, vous pouvez voir que vous avez un module qui définit une version (1.2), alors que le parent définit un INSTANTANÉ de la version. Une application/modules qui sont en cours de développement, devrait définir une version qui est un INSTANTANÉ de la version qui signifie une chose comme
1.2-SNAPSHOT
etc.La même chose s'applique en conséquence à la définition de l'distributionManagement. Cela devrait être défini qu'une seule fois dans le parent du projet.
BTW. Si vous avez plusieurs de projet, le mieux est de définir une société mère qui contient quelques définitions par défaut comme distributionManagement, pluginManagement, dependencyManagement etc.
Aussi, le downvote était pour ne pas correctement la lecture de la question, puisque la question ne mentionne mon Nexus référentiel et le fait que la bibliothèque était de résoudre par le biais de mon repo.
OriginalL'auteur khmarbaise