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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 { } }Les 2 classes sont fortement liées puisque chacune définie l'interface de l'autre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 { } }
Dans le répertoire source src/test/java, j'ai également un package com.example et 1 classe.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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 package com.example; import com.example.Class1.Interface2; public class MockClass2 implements Interface2 { }Message d'autant plus étonnant que si je copie MockClass2 dans le répertoire source src/main/java, la compilation se passe correctement.[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
Quelqu'un a-t-il une idée pour expliquer ce comportement ?
Merci.
Partager