mise à jour de la tache ant d'eugene
Bonjour, j'ai recompiler eugene à partir du trunk mais j'obtient en remplçant le jar d'eugene-1.0.0 par celui que je viens d'obtenir : BUILD FAILED java.lang.NoClassDefFoundError: ChildGenerator at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1146) at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1324) at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1388) at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1341) at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1088) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:621) at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1146) at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1324) at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1388) at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1341) at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1088) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.nuiton.eugene.GeneratorTask.execute(GeneratorTask.java:296) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.Project.executeTarget(Project.java:1306) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.apache.tools.ant.Main.runBuild(Main.java:758) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) Caused by: java.lang.ClassNotFoundException: ChildGenerator at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1400) at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1341) at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1088) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 37 more Total time: 3 seconds J'ai vérifié et ChildGenerator est bien dans le jar que j'obtiens. Dans le doute j'ai remis le jar 1.0.0 et avec ça marche. Je ne vois aps d'où vient le problème, le classpath à l'air correctement positionné. Le fait d'avoir compilé sous windows est-il influant ? d'avance merci Romain Manni-Bucau PS : d'ailleurs concernant la correction vous allouez un tableau de taille 0 donc la méthode toArray() alloue elle-même le tableau qui va bien donc il y a deux allocations alors qu'en allouant un tableau à la bonne taille, toArray() renvoie le tableau alloué ... enfin c'est un détail
Manni-Bucau Romain a écrit :
Bonjour,
j'ai recompiler eugene à partir du trunk mais j'obtient en remplçant le jar d'eugene-1.0.0 par celui que je viens d'obtenir : [...] Ca vient peut-être de votre build.xml, il n'y a pas un path en dur sur la 1.0.0 ? Y a-t-il un moyen de reproduire rapidement votre erreur ?
Perso, j'ai ça : <path id="project.classpath"> <fileset dir="${lib}"> <include name="*.jar" /> </fileset> </path> <pathconvert pathsep=":" property="compile.classpath" refid="project.classpath"> <map from="${basedir}" to="." /> </pathconvert> <taskdef name="eugene" classname="org.nuiton.eugene.GeneratorTask" classpath="${compile.classpath}" />
Le fait d'avoir compilé sous windows est-il influant ?
Dans le monde java non :)
PS : d'ailleurs concernant la correction vous allouez un tableau de taille 0 donc la méthode toArray() alloue elle-même le tableau qui va bien donc il y a deux allocations alors qu'en allouant un tableau à la bonne taille, toArray() renvoie le tableau alloué ... enfin c'est un détail C'est pas faux :) Corrigé.
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
2009/10/28 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
Bonjour,
j'ai recompiler eugene à partir du trunk mais j'obtient en remplçant le jar d'eugene-1.0.0 par celui que je viens d'obtenir : [...] Ca vient peut-être de votre build.xml, il n'y a pas un path en dur sur la 1.0.0 ?
non je nomme le jar eugene.jar à chaque fois (je sais c'est pas bien mais c'est pratique pour mes tests)
Y a-t-il un moyen de reproduire rapidement votre erreur ?
Perso, j'ai ça : <path id="project.classpath"> <fileset dir="${lib}"> <include name="*.jar" /> </fileset> </path>
<pathconvert pathsep=":" property="compile.classpath" refid="project.classpath"> <map from="${basedir}" to="." /> </pathconvert>
<taskdef name="eugene" classname="org.nuiton.eugene.GeneratorTask" classpath="${compile.classpath}" />
mon build.xml contient : <path id="classpath"> <fileset dir="${lib.dir}" includes="*.jar" /> </path> <path id="classpath.test"> <path refid="classpath" /> <path location="${jar.test.name}" /> </path> <target name="generator.init" depends="jar-test"> <taskdef name="eugene" classname="org.nuiton.eugene.GeneratorTask" classpathref="classpath.test" /> </target> <eugene srcdir="${generated.dir}" destdir="${generator.dir}" templates="org.ofbiz.neogia.generators.GeneratorEntityObjectBaseJava1" properties="packageParam=org.ofbiz,packageName=sscomponent1" /> Si l'erreur n'est pas là je posterais un zip avec ce qu'il faut pour reproduire l'erreur.
Le fait d'avoir compilé sous windows est-il influant ?
Dans le monde java non :)
je me doute mais les tests m'affichaient une erreur d'encodage donc j'ai dû les enlever.
PS : d'ailleurs concernant la correction vous allouez un tableau de taille 0 donc la méthode toArray() alloue elle-même le tableau qui va bien donc il y a deux allocations alors qu'en allouant un tableau à la bonne taille, toArray() renvoie le tableau alloué ... enfin c'est un détail C'est pas faux :) Corrigé.
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
Manni-Bucau Romain a écrit :
<eugene srcdir="${generated.dir}" destdir="${generator.dir}" templates="org.ofbiz.neogia.generators.GeneratorEntityObjectBaseJava1" properties="packageParam=org.ofbiz,packageName=sscomponent1" /> Ha, par contre, j'ai encore le classpath dans l'appel de la tâche :
<eugene srcdir="${modelDir}" destdir="${targetgen}" resolver="org.nuiton.util.ResourceResolver" templates="org.nuiton.helloworld.ClassInfoGenerator,org.nuiton.helloworld.JavaBeanGenerator" properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton" classpath="${compile.classpath}:${targetbuild}:${resources}" /> Voilà un exemple de build.xml ant : http://www.nuiton.org/svn/sandbox/eugenehelloworld/trunk/build.xml -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la 2009/10/28, Eric Chatellier <chatellier@codelutin.com>:
Manni-Bucau Romain a écrit :
<eugene srcdir="${generated.dir}" destdir="${generator.dir}" templates="org.ofbiz.neogia.generators.GeneratorEntityObjectBaseJava1" properties="packageParam=org.ofbiz,packageName=sscomponent1" /> Ha, par contre, j'ai encore le classpath dans l'appel de la tâche :
<eugene srcdir="${modelDir}" destdir="${targetgen}" resolver="org.nuiton.util.ResourceResolver"
templates="org.nuiton.helloworld.ClassInfoGenerator,org.nuiton.helloworld.JavaBeanGenerator"
properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton" classpath="${compile.classpath}:${targetbuild}:${resources}" />
Voilà un exemple de build.xml ant : http://www.nuiton.org/svn/sandbox/eugenehelloworld/trunk/build.xml
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
-- Envoyé avec mon mobile Rniamo
Manni-Bucau Romain a écrit :
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la
Pouvez vous nous fournir un exemple exécutable svp ? -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
je vous mets en pièce jointe l'archive de test que j'utilise. il faut lancer le target test.uc.gen de build-test.xml. Romain 2009/10/28 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la
Pouvez vous nous fournir un exemple exécutable svp ?
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
Voici le résultat de ma compilation (cf PJ) 2009/10/28 Manni-Bucau Romain <manni.romain@gmail.com>
je vous mets en pièce jointe l'archive de test que j'utilise.
il faut lancer le target test.uc.gen de build-test.xml.
Romain
2009/10/28 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la
Pouvez vous nous fournir un exemple exécutable svp ?
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
j'ai refait un checkout, recompilé (encore une fois en supprimant les tests) et ça à l'air de marcher. Le mieux serait quand même de laisser les tests, surtout que peux ne passent pas. Je ne suis plus pour longtemps sous wind*ws mais je suis tout de même intéressé par la solution à mon erreur sur les tests. Romain 2009/10/28 Manni-Bucau Romain <manni.romain@gmail.com>
Voici le résultat de ma compilation (cf PJ)
2009/10/28 Manni-Bucau Romain <manni.romain@gmail.com>
je vous mets en pièce jointe l'archive de test que j'utilise.
il faut lancer le target test.uc.gen de build-test.xml.
Romain
2009/10/28 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la
Pouvez vous nous fournir un exemple exécutable svp ?
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
Le Wed, 28 Oct 2009 19:29:16 +0100, Manni-Bucau Romain <manni.romain@gmail.com> a écrit :
Voici le résultat de ma compilation (cf PJ)
Salut, Y'a des tests qui ne fonctionnent pas MAIS tu ne nous donnes pas les fichiers de resultats des tests :) donc on sait pas ce qui ne passent pas. Pour info ces fichiers sont dans target/surefire-reports/nom_de_la_classe_du_test.txt Si tu peux les joindre, ça aiderait bien Dans ton cas ça sera : target/surefire-reports/org.nuiton.eugene.xmi.objectmodel.XMI21ToObjectModelTest.txt
2009/10/28 Manni-Bucau Romain <manni.romain@gmail.com>
je vous mets en pièce jointe l'archive de test que j'utilise.
on peut se tutoyer peut-être :)
il faut lancer le target test.uc.gen de build-test.xml.
Romain
2009/10/28 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la
Pouvez vous nous fournir un exemple exécutable svp ?
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
2009/10/29 Tony Chemit <chemit@codelutin.com>
Le Wed, 28 Oct 2009 19:29:16 +0100, Manni-Bucau Romain <manni.romain@gmail.com> a écrit :
Voici le résultat de ma compilation (cf PJ)
Salut,
Y'a des tests qui ne fonctionnent pas MAIS tu ne nous donnes pas les fichiers de resultats des tests :) donc on sait pas ce qui ne passent pas.
Pour info ces fichiers sont dans target/surefire-reports/nom_de_la_classe_du_test.txt
Si tu peux les joindre, ça aiderait bien
Dans ton cas ça sera :
target/surefire-reports/org.nuiton.eugene.xmi.objectmodel.XMI21ToObjectModelTest.txt
ok, je pensais que les erreurs vous parlerais un peu. Apparemment il n'aime pas les pathmap.
2009/10/28 Manni-Bucau Romain <manni.romain@gmail.com>
je vous mets en pièce jointe l'archive de test que j'utilise.
on peut se tutoyer peut-être :)
pas de soucis :) mais je pense que le vous est plus un vous pluriel ;)
il faut lancer le target test.uc.gen de build-test.xml.
Romain
2009/10/28 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
Je n'ai plus le classpath mais j'avais essayé avec et j'avais les meme resultats. De plus, eugene 1.0.0 ne devrait pas marcher sans si le problème etait la
Pouvez vous nous fournir un exemple exécutable svp ?
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
--
Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com _______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
Manni-Bucau Romain a écrit :
je vous mets en pièce jointe l'archive de test que j'utilise.
il faut lancer le target test.uc.gen de build-test.xml. Il n'y a aucune sources dans votre archive.
$ ant -f build-test.xml test.uc.gen Buildfile: build-test.xml compile: [mkdir] Created dir: /home/chatellier/tmp/Ofbizmodel2ObjectmodelTask/classes BUILD FAILED /home/chatellier/tmp/Ofbizmodel2ObjectmodelTask/build.xml:36: srcdir "/home/chatellier/tmp/Ofbizmodel2ObjectmodelTask/src" does not exist! -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
2009/10/29 Eric Chatellier <chatellier@codelutin.com>
Manni-Bucau Romain a écrit :
je vous mets en pièce jointe l'archive de test que j'utilise.
il faut lancer le target test.uc.gen de build-test.xml. Il n'y a aucune sources dans votre archive.
$ ant -f build-test.xml test.uc.gen Buildfile: build-test.xml
compile: [mkdir] Created dir: /home/chatellier/tmp/Ofbizmodel2ObjectmodelTask/classes
BUILD FAILED /home/chatellier/tmp/Ofbizmodel2ObjectmodelTask/build.xml:36: srcdir "/home/chatellier/tmp/Ofbizmodel2ObjectmodelTask/src" does not exist!
oups, j'ai alléger le zip mais je n'ai pas pensé au dépendaces, il faut remplacer dans build-test.xml : <target name="test.init" description="Base task definition" depends="jar-test"> <taskdef name="convert-model" classname="org.neogia.Ofbizmodel2ObjectmodelTask" classpathref="classpath.test" /> </target> par <target name="test.init" description="Base task definition" > <taskdef name="convert-model" classname="org.neogia.Ofbizmodel2ObjectmodelTask" classpathref="classpath.test" /> </target> --
Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
Manni-Bucau Romain a écrit :
oups, j'ai alléger le zip mais je n'ai pas pensé au dépendaces, il faut remplacer dans build-test.xml : <target name="test.init" description="Base task definition" depends="jar-test"> <taskdef name="convert-model" classname="org.neogia.Ofbizmodel2ObjectmodelTask" classpathref="classpath.test" /> </target>
par
<target name="test.init" description="Base task definition" > <taskdef name="convert-model" classname="org.neogia.Ofbizmodel2ObjectmodelTask" classpathref="classpath.test" /> </target> Ca marche avec ça, j'ai eu le même erreur que vous.
Par contre, en utilisant un jar fait par moi même, ça compile bien. Vous pouvez utiliser celui ci : http://maven.nuiton.org/snapshot/org/nuiton/eugene/eugene/1.0.1-SNAPSHOT/eug... Je ne sais pas comment vous vous êtes pris pour faire votre jar, mais il n'a pas l'air complet. Il manque la classes ObjectModelGenerator$1.class dans le votre. -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
ok merci. j'ai juste lancé la compilation en console sans rien faire de particulier. Romain On Thu, Oct 29, 2009 at 4:01 PM, Eric Chatellier <chatellier@codelutin.com>wrote:
Manni-Bucau Romain a écrit :
oups, j'ai alléger le zip mais je n'ai pas pensé au dépendaces, il faut remplacer dans build-test.xml : <target name="test.init" description="Base task definition" depends="jar-test"> <taskdef name="convert-model" classname="org.neogia.Ofbizmodel2ObjectmodelTask" classpathref="classpath.test" /> </target>
par
<target name="test.init" description="Base task definition" > <taskdef name="convert-model" classname="org.neogia.Ofbizmodel2ObjectmodelTask" classpathref="classpath.test" /> </target> Ca marche avec ça, j'ai eu le même erreur que vous.
Par contre, en utilisant un jar fait par moi même, ça compile bien. Vous pouvez utiliser celui ci :
http://maven.nuiton.org/snapshot/org/nuiton/eugene/eugene/1.0.1-SNAPSHOT/eug...
Je ne sais pas comment vous vous êtes pris pour faire votre jar, mais il n'a pas l'air complet. Il manque la classes ObjectModelGenerator$1.class dans le votre.
-- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com
_______________________________________________ Eugene-devel mailing list Eugene-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/eugene-devel
participants (3)
-
Eric Chatellier -
Manni-Bucau Romain -
Tony Chemit