Ant et eclipse - Java - Programmation
Marsh Posté le 10-02-2004 à 14:28:28
Citation : |
Marsh Posté le 10-02-2004 à 14:33:03
j'ai eu le probleme avec un ant autre que celui dans les plugin de eclipse, et les version 3M05 de eclipse. tu as quoi ?
Marsh Posté le 10-02-2004 à 14:38:25
Ant est installé ou? -> $ANT_HOME
Java est ou? -> $JAVA_HOME
tout ca est bien redefini dans les variables d'environnement de eclipse
(mon probleme a disparu sitot que je suis passé à la 3M06 alors je sais pas en fait)
Marsh Posté le 10-02-2004 à 14:41:53
Java_home : cj2sdk1.4.1_02
ant_home : cjonas-3.3/ant
dans eclipse ant_home est vide et java_home on le trouve ou dans eclipse?
Marsh Posté le 10-02-2004 à 14:43:46
Moi, j'utilise le javac d'Eclipse en utilisant la déclaration suivante en début de mon script Ant
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
Marsh Posté le 10-02-2004 à 14:46:27
Script ant??
Excuse moi mais je debute
je n'ai pas creer de script ant ou alors il a ete cree par defaut car j'utilise eclipse donc je ne sais pas ou mettre ta ligne de commande
Marsh Posté le 10-02-2004 à 14:48:38
rivierem a écrit : Java_home : cj2sdk1.4.1_02 |
tu dois definir tes variables dans eclipse (sous menu Java/variable d'environnement je crois)
ca vient peut etre de là
Marsh Posté le 10-02-2004 à 14:49:59
Ton script ant se situe là d'après ton 1er post:
C:\Documents and Settings\matthieu\Mes
documents\Java\J2EE\workspace\EjbProject\build.xml
il suffit de l'éditer et après la balise <projet> de mettre la déclaration que j'ai donné + haut
Marsh Posté le 10-02-2004 à 14:50:13
effectivement ca bien la et JRE_SRC est vide
JRE_SRCROOT est vide aussi???
Mais je ne peux pas les modifier!!!
Marsh Posté le 10-02-2004 à 14:51:49
tu dois dire à eclipse quel JRE est installé (java/JRE ou qqchose comme ca) apres il te rempli le reste
Marsh Posté le 10-02-2004 à 14:52:19
effectivement avec ta ligne ca a l'air de marcher mais comme cela marcher parfois je vais attendre
Par contre je veux deployer dans jonas et il ne trouve mon fichier jar!!!
Je galere grave
Marsh Posté le 10-02-2004 à 14:53:28
je lui est defini mon jdk mais JRE_SRCROOT est toujours vide
Marsh Posté le 10-02-2004 à 14:54:27
le plus propre est effectivement de redeclarer le path vers le JRE dans le script Ant (moi je suis un goret je l'ai mis en variable d'environnement )
Marsh Posté le 10-02-2004 à 14:56:27
machinbidule : ca marche
le fichier jar de mon appli voila l'erreur
2004-02-10 14:56:08,390 : EarServiceImpl.deployEar : Error while trying to resolve the classpath of the ejbjars and wars of the ear : 'fileCJOnAS-3.3/apps/course.ear' : Error while reading manifest file from the file course.jar : Le fichier spécifié est introuvable
Marsh Posté le 10-02-2004 à 14:57:01
En l'occurrence, la déclaration donnée + haut indique que le compilateur appelé est celui d'Eclipse, ce qui évite d'avoir à déclarer un chemin absolu
Marsh Posté le 10-02-2004 à 14:58:11
il a été généré comment ton ear ? avec la tâche ear d'Ant ? est-ce-qu'il contient un fichier MANIFEST ?
Marsh Posté le 10-02-2004 à 14:59:56
oui il contient un fichier manifest
je pense que oui il a ete cree avec la tache d'ant
Marsh Posté le 10-02-2004 à 15:01:11
rivierem a écrit : oui il contient un fichier manifest |
comment a été créé le fichier build.xml
Marsh Posté le 10-02-2004 à 15:03:35
arf... je vais pas pouvoir beaucoup t'aider, j'ai aucune expérience des ear c'est peut-être un problème de classpath, de génération de l'ear... je vois pas trop
Marsh Posté le 10-02-2004 à 15:03:59
en formation un prof qui nous l'a fait copie sans nous expliquer comment ca marchais c pour cela que je galere car on etait qou linux et mois je sui sous windows
j'ai donc repris les chemins mais je pense qu'il doit y avoir encore des problemes mais je suis largue
voila mon build.xml
<?xml version="1.0"?>
<!--
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- JOnAS: Java(TM) Open Application Server
- Copyright (C) 1999 Bull S.A.
- Contact: jonas-team@objectweb.org
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA
-
- Initial developer(s): Helene Joanin
- Contributor(s): Philippe Durieux
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- $Id: build.xml,v 1.8 2003/05/27 08:36:43 coqp Exp $
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
<!--
- build.xml file for JOnAS course example (for Ant Version 1.5)
- environment variables used :
- JONAS_ROOT
-->
<project name="Course Broker"
default="install"
basedir=".">
<!-- build.properties hold the properties that can be customized -->
<property file="build.properties" />
<!-- some properties are build from environment variables -->
<property environment="myenv"/>
<property name="jonas.root" value="${myenv.JONAS_ROOT}" />
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" />
<!-- Set the uncustomizable properties -->
<property name="src.dir" value="src" />
<property name="etc.dir" value="etc" />
<property name="xml.dir" value="${etc.dir}/xml" />
<property name="resources.dir" value="${etc.dir}/resources" />
<property name="web.resources.dir" value="${resources.dir}/web" />
<property name="classes.dir" value="classes" />
<property name="dist.dir" value="output" />
<property name="dist.ejbjars.dir" value="${dist.dir}/ejbjars" />
<property name="dist.webapps.dir" value="${dist.dir}/webapps" />
<property name="dist.apps.dir" value="${dist.dir}/apps" />
<property name="lib.dir" value="${jonas.root}/lib" />
<!-- ejbjar task -->
<taskdef name="ejbjar"
classname="org.objectweb.jonas.ant.EjbJar"
classpath="${jonas.root}/lib/common/ow_jonas_ant.jar" />
<!-- The classpath to be used to compile examples -->
<path id="base.classpath">
<pathelement location="${classes.dir}" />
<fileset dir="${lib.dir}">
<include name="jonas.jar"/>
<include name="web*.jar"/>
</fileset>
</path>
<target name="mydtd"
description="rebuild ./build.dtd for DOCTYPE">
<antstructure output="build.dtd"/>
</target>
<target name="init">
<!-- directories building -->
<mkdir dir="${classes.dir}" />
<mkdir dir="${dist.dir}" />
<mkdir dir="${dist.apps.dir}" />
<mkdir dir="${dist.ejbjars.dir}" />
<mkdir dir="${dist.webapps.dir}" />
<condition property="jonas.base" value="${myenv.JONAS_BASE}">
<available file="${myenv.JONAS_BASE}"/>
</condition>
<condition property="jonas.base" value="${jonas.root}">
<available file="${jonas.root}"/>
</condition>
</target>
<target name="clean"
description="Removes all the generated files or directories">
<delete dir="${classes.dir}" />
<delete dir="${dist.dir}" />
</target>
<target name="compile"
description="Compile the Course Broker"
depends="init" >
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
debug="${opt.javac.debug}"
optimize="${opt.javac.optimize}">
<classpath refid="base.classpath" />
</javac>
</target>
<!-- Deploying ejbjars via ejbjar task -->
<target name="jonasejbjar"
description="Build and deploy the ejb-jar file"
depends="compile" >
<ejbjar basejarname="course"
srcdir="${classes.dir}"
descriptordir="${xml.dir}"
dependency="full" >
<include name="/ejb-jar.xml"/>
<dtd publicId="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
location="${jonas.root}/xml/ejb-jar_2_0.dtd" />
<!-- <support dir="${classes.dir}">
<include name="**/AddressDO.class"/>
</support>-->
<jonas destdir="${dist.ejbjars.dir}"
jonasroot="${jonas.root}"
mappernames="${mapper.names}"
protocols="${protocols.names}"
keepgenerated="true" />
</ejbjar>
</target>
<target name="war"
description="Build the war file"
depends="jonasejbjar" >
<war warfile="${dist.webapps.dir}/course.war"
webxml="${xml.dir}/web.xml">
<zipfileset dir="${web.resources.dir}" prefix="" />
<classes dir="${classes.dir}">
<include name="**/**/**/servlets/*.class"/>
</classes>
</war>
</target>
<target name="ear"
description="Build the war file"
depends="war" >
<ear earfile="${dist.apps.dir}/course.ear"
appxml="${xml.dir}/application.xml">
<fileset dir="${dist.ejbjars.dir}" includes="course.jar"/>
<fileset dir="${dist.webapps.dir}" includes="course.war"/>
</ear>
</target>
<target name="install"
description="Build and install the Course Broker"
depends="ear" >
<!-- Copy ear files in JONAS_BASE -->
<copy todir="${jonas.base}/apps">
<fileset dir="${dist.apps.dir}"
includes="course.ear" />
</copy>
<!-- Extract the ejb-jar in classes -->
<unjar dest="${classes.dir}">
<fileset dir="${dist.ejbjars.dir}">
<include name="*.jar" />
</fileset>
</unjar>
</target>
</project>
Marsh Posté le 10-02-2004 à 15:06:57
ton erreur d'ear survient à l'exécution du script ? si oui, mets toute la trace d'exécution qu'on puisse s'y repérer
Marsh Posté le 10-02-2004 à 15:07:55
non elle vient lorsque je fait jonas admin -a course.ear
le script marche maintenant
Marsh Posté le 10-02-2004 à 15:08:27
Voila la trace quand meme
Code :
|
Marsh Posté le 10-02-2004 à 15:10:52
Merci quand meme
tu m'as deja enleve une epine du pied car mon script ant marche a tous les coups maintenant
je vais voir pour mon deploiement sous jonas
Marsh Posté le 10-02-2004 à 15:11:44
ReplyMarsh Posté le 10-02-2004 à 15:14:14
rivierem a écrit : ja sais ce que je veux faire mais comment le faire |
je connais pas Jonas (j'ai utilisé JBoss) mais il peut faire le deploiement à chaud ?
Marsh Posté le 10-02-2004 à 15:16:17
oui du moins on le faisait en formation
il suffit dans l'invite de commande de taper jonas admin -a nom-du-ear.ear mais il me met l'erreur qu'il y a ci-dessus
Marsh Posté le 10-02-2004 à 15:17:41
est-ce-que tes fichiers sont bien dans les bons répertoires ? est-ce-que le ear ne fait pas référence au war ? si oui, est-ce-que cette référence est correcte (chemin absolu ? relatif ?)
Marsh Posté le 10-02-2004 à 15:18:46
mon ear fait reference au war et au jar les chemins sont bon mais le fichier jar n'est pas cree???
Je ne sais donc pas comment faire
Marsh Posté le 10-02-2004 à 15:22:42
d'après ton script Ant, le fichier course.jar est inclus lors de la génération dans le fichier ear. vérifie qu'il s'y trouve bien. Si ça n'est pas le cas, est-ce-que ton fichier jar se trouve dans le répertoire output/ejbjars ?
Marsh Posté le 10-02-2004 à 15:24:30
non justement il ne s'y trouve pas et je ne sais pas pourquoi
Marsh Posté le 10-02-2004 à 15:25:43
il va falloir inclure une <target> dans ton script avec la génération du jar. je peux essayer de t'aider mais je vais prendre le café, là je reviens
Marsh Posté le 10-02-2004 à 15:26:36
c'est bizarre que le jar ne soit pas crée comme un tache Ant comme le war ou l'ear
edit: tu dois creer une task ant qui recupere les .class et les met sous forme de jar
Marsh Posté le 10-02-2004 à 14:26:52
Je veux executer ant sous eclipse mais cela ne marche pas
mais par contre cela marche sous l'invite de commande
il me met :
Buildfile: C:\Documents and Settings\matthieu\Mes
documents\Java\J2EE\workspace\EjbProject\build.xml
Trying to override old definition of task ejbjar
init:
compile:
[javac] Compiling 22 source files to C:\Documents and Settings\matthieu\Mes
documents\Java\J2EE\workspace\EjbProject\classes
[javac] BUILD FAILED: file:CDocuments and Settings/matthieu/Mes
documents/Java/J2EE/workspace/EjbProject/build.xml:107: Unable to find a
javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
Total time: 407 milliseconds
Apparement ca vien du optimize ou de mon classpath mais je n'arrive pas a
trouver comment faire
<target name="compile"
description="Compile the Course Broker"
depends="init" >
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
debug="${opt.javac.debug}"
optimize="${opt.javac.optimize}">
<classpath refid="base.classpath" />
</javac>
</target>
Merci d'avance