Comportement bizarre du couple eclipse+ant
[ Nouvelle discussion
| Répondre au groupe
|
fr.comp.lang.java ]
B'jour,
Je viens vous rapporter un petit problème assez bizarre que je
viens d'avoir avec ant+eclipse, et plus précisemment avec la tâche
javac lorsque celle-ci se voit adjoindre un attribut destdir. Je
pense l'avoir résolu mais j'aimerais avoir votre avis sur la nature
de ce problème étant donné que je n'ai rien trouvé à ce sujet sur
le web.
Explication:
-> problème rencontré avec :
+ Windows XP
+ java 1.6.0_05-b13
+ eclipse 3.3.2 & 3.4M6a
Soit le source suivant qui contient une *erreur volontaire* :
public abstract class Test {
public static void main(String[] pArgs) {
Test lTest = new Test();
}
}
Soit le script ant suivant :
<?xml version="1.0"?>
<project name="Test" default="compile" >
<property name="source" value="src" />
<property name="dest" value="bin" />
<target name="compile">
<javac srcdir="${source}" destdir="${dest}" listfiles="on" />
</target>
</project>
l'exécution de ce script ant en dehors d'eclipse donne lui
au résultat suivant :
-------------------------------------------------------------
Buildfile: build.xml
compile:
[javac] Compiling 1 source file to bin
[javac] Test.java
[javac] Test.java:4: Test is abstract; cannot be instantiated
[javac] Test lTest = new Test();
[javac] ^
[javac] 1 error
BUILD FAILED
-------------------------------------------------------------
Maintenant, si j'utilise eclipse, que je créé un projet Test
contenant le source Test.java, le script ant build.xml et
que je lance un build via ce script, j'obtiens la sortie suivante :
---------------------------
Buildfile: ...build.xml
compile:
BUILD SUCCESSFUL
--------------------------
Non seulement, il m'affiche un superbe BUILD SUCCESSFUL
alors qu'il y a une énorme erreur dans le source mais en plus
il me génère un zoli Test.class dans mon dossier "bin" qui,
lorsque je l'exécute via un "java -cp bin Test" me sort :
---------------------------
Exception in thread "main" java.lang.Error: Unresolved compilation
problem:
Cannot instantiate the type Test
at Test.main(Test.java:4)
---------------------------
Après reflexion et une bonne prise de tête, je me suis rendu
compte que tout rentre dans l'ordre dans les cas suivants :
- l'attribut destdir de la tâche javac fait référence à un
dossier différent du "Default output folder" du projet (qui
pointe "bin" par défaut).
- Le script ant "build.xml" est défini comme étant le builder
du projet.
Qu'en pensez-vous ? est-ce un bug d'eclipse ? de ant ? de
java ? ou y-a-il un dysfonctionnememt entre la chaise et le
clavier ;^b ?
--
Seb

|
 cette fonctionnalité est reservée aux membres ayant une session active !
|