Maven : Cyclic inheritance
Bonjour à tous,
J'aimerais avoir l'avis de la communauté concernant le fonctionnement de Maven dans un cas particulier.
Considérons un projet Maven classique (j'ai volontairement réduit l'ensemble des classes au minimum) :
Dans le répertoire source src/main/java, j'ai un package com.example et 2 classes :
Code:
1 2 3 4 5 6 7 8 9 10
| package com.example;
import com.example.Class2.Interface1;
public class Class1 implements Interface1 {
public interface Interface2 {
}
} |
Code:
1 2 3 4 5 6 7 8 9 10
| package com.example;
import com.example.Class1.Interface2;
public class Class2 implements Interface2 {
public interface Interface1 {
}
} |
Les 2 classes sont fortement liées puisque chacune définie l'interface de l'autre.
Dans le répertoire source src/test/java, j'ai également un package com.example et 1 classe.
Code:
1 2 3 4 5 6 7
| package com.example;
import com.example.Class1.Interface2;
public class MockClass2 implements Interface2 {
} |
Si la compilation sous Eclipse ne pose aucun problème (l'exécution non plus si on implémente quelques méthodes), en revanche, sous Maven, j'obtiens le message suivant :
Citation:
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
C:\Home\Helios\eclipseV4\workspace\CyclicTest\src\test\java\com\example\MockClass2.java:[6,35] cyclic inheritance involving com.example.Class1.Interface2
Message d'autant plus étonnant que si je copie MockClass2 dans le répertoire source src/main/java, la compilation se passe correctement.
Quelqu'un a-t-il une idée pour expliquer ce comportement ?
Merci.