Maven erreur de compilation: impossible de trouver le symbole
Ne savais vraiment pas quoi mettre différemment, comme un titre d'une question...
J'ai 3 modules maven. D'abord on est parent module et il encapsule enfant modules. Rien de fantaisie. Dans le deuxième module, j'ai de la classe de test qui est abstrait et dispose de deux méthodes.
Dans le troisième module, j'ai test la classe qui hérite de la classe abstraite à partir de la deuxième module.
Quand j'essaie de compiler ce avec maven, je suis d'erreur de compilation qui dit qu'il ne peut pas trouver un symbole, c'est que la classe abstraite à partir de la deuxième module. Ce qui est intéressant, que je n'ai aucune erreur de compilation dans eclipse.
C'est une pièce de pom de troisième module:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>SecondModule</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<!-- to generate the MANIFEST-FILE of the bundle -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>*</Import-Package>
<Export-Package></Export-Package>
<Embed-Dependency>SecondModule</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
C'est l'erreur que j'obtiens:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project ThirdModule: Compilation failure: Compilation failure:
[ERROR] D:/workspace/project/ThirdModule/src/test/java/org/rrrrrrr/ssssss/thirdmodule/ConcreteTest.java:[7,56] cannot find symbol
[ERROR] symbol: class AbstractTest
[ERROR] location: package org.rrrrrrr.ssssss.secondmodule
Ce qui me manque?
Je separete mon code de test du projet et le mettre dans un autre projet, et l'erreur a disparu.
OriginalL'auteur BojanSM | 2015-08-13
Vous devez vous connecter pour publier un commentaire.
Les classes de test (classes à l'intérieur de la src/test) ne sont pas ajoutés au chemin de classe automatiquement lorsque vous ajoutez une dépendance. Seules les classes de ceux qui sont dans src/main sont inclus.
Pour ajouter de la dépendance sur les classes de test ainsi que vous devez le spécifier explicitement en spécifiant le type de test-pot dans la section de dépendance. Ce doit être la dépendance définis dans le pom.xml du module 3.
C'est aussi une bonne idée de faire en sorte de test-jar est généré par le SecondModule. Sinon quelqu'un qui a besoin de compiler ThirdModule aurait besoin de compiler SecondModule. Par défaut de maven n'a pas de package de classes de test dans un bocal. Dire maven pour ce faire, ajoutez les objectifs: jar et des essais en jar pour maven-jar-plugin exécutions. De cette façon, le pot d'origine et le test jar seraient générées.
Ici est le plan pom.xml pour la deuxième module qui illustre cette.
OriginalL'auteur Joydip Datta