OVH Cloud OVH Cloud

ant option négative ???

10 réponses
Avatar
yvon.thoravalNO-SPAM
Bonjour !

y a t'il un moyen, avec ant, de faire une option négative ?

dans mon target name="compile" j'ai :

copy
javac
javadoc
copy
jar

et, la pluspart du temps, faire le "javadoc" est inutile (pas de
changements), y a t'il donc un moyen (autre que supprimer la partie
javadoc, de passer un argument à ant, en option négative du genre
"-javadoc" qui lui fasse sauter cette partie ?
--
yt

10 réponses

Avatar
djice
peux tu poster le contenu de ton fichier ant ?

merci


"Yvon Thoraval" a écrit dans le message de
news: 1glpo6m.1i7syot1w06yfbN%
Bonjour !

y a t'il un moyen, avec ant, de faire une option négative ?

dans mon target name="compile" j'ai :

copy
javac
javadoc
copy
jar

et, la pluspart du temps, faire le "javadoc" est inutile (pas de
changements), y a t'il donc un moyen (autre que supprimer la partie
javadoc, de passer un argument à ant, en option négative du genre
"-javadoc" qui lui fasse sauter cette partie ?
--
yt


Avatar
Black Myst
Yvon Thoraval wrote:
Bonjour !

y a t'il un moyen, avec ant, de faire une option négative ?

dans mon target name="compile" j'ai :

copy
javac
javadoc
copy
jar

et, la pluspart du temps, faire le "javadoc" est inutile (pas de
changements), y a t'il donc un moyen (autre que supprimer la partie
javadoc, de passer un argument à ant, en option négative du genre
"-javadoc" qui lui fasse sauter cette partie ?


perso, moi j'ai 2 regles principal (+ les regles dependante )

javadoc (qui dépends de compil, init, ...)
dist (qui dépends de jar, compil, init )

La regle principal c'est "dist".
Et quand je veux ma javadoc : ant javadoc

Si c'est pas la réponse, alors j'ai rien compris à ta question.

Avatar
yvon.thoravalNO-SPAM
djice wrote:

eux tu poster le contenu de ton fichier ant ?


Pas de pb, here it is :

<project name="jnn" default="compile" basedir=".">
<property name="src" value="src"/>
<property name="docDst" value="src/html/doc_macave"/>
<property name="dst" value="classes"/>
<property name="data" value="data"/>
<property name="dataBup" value="data_bup"/>
<property name="libdst" value="lib"/>
<property name="app" value="macave.jar"/>
<property name="build.compiler" value="modern"/>

<target name="init">
<mkdir dir="${dst}"/>
<tstamp/>
</target>

<target name="compile" depends="init">
<copy todir="${dataBup}">
<fileset dir="${data}">
<include name="**/*.properties"/>
<include name="**/*.script"/>
<include name="**/*.log"/>
</fileset>
</copy>
<javac source="1.4"
debug="yes"
srcdir="${src}"
destdir="${dst}"
classpath="${basedir}/lib/hsqldb.jar">
</javac>
<javadoc packagenames="yt.*"
windowtitle="Ma Cave"
sourcePath="${src}"
destDir="${docDst}">
</javadoc>
<copy todir="${dst}">
<fileset dir="${src}">
<include name="**/*.properties"/>
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
<include name="**/*.png"/>
<include name="**/*.html"/>
<include name="**/*.txt"/>
<include name="**/*.css"/>
</fileset>
</copy>
<!--mkdir dir="${libdst}"/-->
<jar jarfile="lib/${app}" basedir="${dst}" update="true">
<manifest>
<attribute name ="Main-Class" value="yt.ui.MaCave"/>
<attribute name ="Class-Path" value="lib/macave.jar"/>
</manifest>
<zipgroupfileset dir="lib_bup" includes="hsqldb.jar">
<include name="**/*.properties"/>
<include name="**/*.class"/>
</zipgroupfileset>
</jar>
<!--delete dir="${dst}"/-->
</target>
</project>

--
yt

Avatar
yvon.thoravalNO-SPAM
Black Myst <Black_point_Myst_chez_free_point_fr> wrote:


La regle principal c'est "dist".
Ok, donc sans javadoc, par défaut, tu as donc mis :


<project name="jnn" default="dist" basedir=".">
Et quand je veux ma javadoc : ant javadoc


mais quelle est la syntaxe dans le build.xml pour dire que si tu fais
ant javadoc il faut générer la javadoc.

finalement ton option positive pour javadoc me va très bien, c'est rare
d'avoir à produire la javadoc... app finalisée...
--
yt

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:


finalement ton option positive pour javadoc me va très bien, c'est rare
d'avoir à produire la javadoc... app finalisée...


bon, en fait j'ai bien besoin d'une option "négative" car la javadoc est
incluse dans mon jar, pour l'instant j'ai 3 targets :

init
compile depends="init"
doc depends="compile"

MAIS, dans compile j'ai jar, qui est donc exécuté avant doc (ie javadoc
& mes fichiers help)

ce que je voudrais pouvoir faire :

init
compile
jar si !doc
et si doc :
doc
jar
de manière à inclure la dernière doc générée dans le jar

--
yt

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:

Bon j'ai trouvé une solution (peut-être non élégante...)

Mon target par défaut est "jar" :

<project name="toto" default="jar" basedir=".">

lequel est défini par :

<target name="jar" depends="compile" unless="builddoc">
<antcall target="buildjar"/>
</target>

donc pas de "jar" si la propriété "builddoc" est settée par :

<target name="doc" depends="compile">
<condition property="builddoc">
<isset property="docDst"/>
</condition>
comme la propriété "docDst" est tjs settée, "builddoc" l'est dès qu'on a
choisi doc en argument (ie. ant doc)
dans ce target doc, j'ajoute, à la fin :
<antcall target="buildjar"/>
</target>


et j'ai ce que je voulais...

--
yt
Avatar
Emmanuel Feller
"Yvon Thoraval" a écrit dans le message de
news:1glql0v.eqchfdmi4mawN%
Yvon Thoraval wrote:

Bon j'ai trouvé une solution (peut-être non élégante...)



Je trouve dommage de passer par des antcall alors que tu n'en a pas besoin
...
Tu es en train de transformer ant en un outil de script, or ce n'en est pas
un, c'est un outil de description de build.

Pour ton cas, la target par defaut est dist.

dist est definie comme <target name="dist" depends="init,compile,doc,jar">

et doc est definie comme <target name="doc" depends="je ne sais pas quoi"
if="la propriete positive de javadoc">
(remplace le if par unless si tu veux une option negative, mais vu que la
javadoc est extra-ordinaire, la positive est plus judicieuse ..)

Je te conseille la lecture du "java developpment with ant" car je pense que
tu as de bonnes choses à aller piocher ...

Emmanuel

Avatar
djice
-tu pourrais envoyer un argument lors de ton apel ant et faire un condition
sur la javadoc.
-Sinon tu supprime directement la balise javadoc...


"Yvon Thoraval" a écrit dans le message de
news: 1glpyf3.1rm6rh3982rxoN%
djice wrote:

eux tu poster le contenu de ton fichier ant ?


Pas de pb, here it is :

<project name="jnn" default="compile" basedir=".">
<property name="src" value="src"/>
<property name="docDst" value="src/html/doc_macave"/>
<property name="dst" value="classes"/>
<property name="data" value="data"/>
<property name="dataBup" value="data_bup"/>
<property name="libdst" value="lib"/>
<property name="app" value="macave.jar"/>
<property name="build.compiler" value="modern"/>

<target name="init">
<mkdir dir="${dst}"/>
<tstamp/>
</target>

<target name="compile" depends="init">
<copy todir="${dataBup}">
<fileset dir="${data}">
<include name="**/*.properties"/>
<include name="**/*.script"/>
<include name="**/*.log"/>
</fileset>
</copy>
<javac source="1.4"
debug="yes"
srcdir="${src}"
destdir="${dst}"
classpath="${basedir}/lib/hsqldb.jar">
</javac>
<javadoc packagenames="yt.*"
windowtitle="Ma Cave"
sourcePath="${src}"
destDir="${docDst}">
</javadoc>
<copy todir="${dst}">
<fileset dir="${src}">
<include name="**/*.properties"/>
<include name="**/*.gif"/>
<include name="**/*.jpg"/>
<include name="**/*.png"/>
<include name="**/*.html"/>
<include name="**/*.txt"/>
<include name="**/*.css"/>
</fileset>
</copy>
<!--mkdir dir="${libdst}"/-->
<jar jarfile="lib/${app}" basedir="${dst}" update="true">
<manifest>
<attribute name ="Main-Class" value="yt.ui.MaCave"/>
<attribute name ="Class-Path" value="lib/macave.jar"/>
</manifest>
<zipgroupfileset dir="lib_bup" includes="hsqldb.jar">
<include name="**/*.properties"/>
<include name="**/*.class"/>
</zipgroupfileset>
</jar>
<!--delete dir="${dst}"/-->
</target>
</project>

--
yt



Avatar
yvon.thoravalNO-SPAM
djice wrote:

-tu pourrais envoyer un argument lors de ton apel ant et faire un condition
sur la javadoc.


c'est ce que j'ai fait :

<target name="jar" depends="compile" unless="builddoc">
<antcall target="buildjar"/>
</target>

<target name="doc" depends="compile">
<condition property="builddoc">
<isset property="docDst"/>
</condition>


Reste une question là pour setter condition property="builddoc" je teste
une propriété qui existe toujours isset property="docDst", moyen de se
passer du test ? genre ondition property="builddoc" value="n'importe
quoi" ???
-Sinon tu supprime directement la balise javadoc...


Voila une solution quelle est radicale °;)
--
yt

Avatar
yvon.thoravalNO-SPAM
Emmanuel Feller wrote:

Je trouve dommage de passer par des antcall alors que tu n'en a pas besoin
...
Tu es en train de transformer ant en un outil de script, or ce n'en est pas
un, c'est un outil de description de build.
j'ai supprimé les antcall...

Pour ton cas, la target par defaut est dist.

dist est definie comme <target name="dist" depends="init,compile,doc,jar">


par défaut, je ne veux pas générer la doc, donc j'ai mis :
<target name="dist" depends="init,compile,jar">
et doc est definie comme <target name="doc" depends="je ne sais pas quoi"
if="la propriete positive de javadoc">
et mis un target all :

<target name="all" depends="init,compile,doc,jar">
mais là, le jar n'est pas produit, sans doute cela provient du fait que
:
<target name="doc" depends="compile">
<target name="jar" depends="compile">

tous les deux dépendent de compile...
(la doc est dans le jar : fichiers help)
(remplace le if par unless si tu veux une option negative, mais vu que la
javadoc est extra-ordinaire, la positive est plus judicieuse ..)

Je te conseille la lecture du "java developpment with ant" car je pense que
tu as de bonnes choses à aller piocher ...


je viens d'être échaudé par une commande de bouquin "The Ruby Way"
livraison 48h par colissimo, qui a mis plus de 3 semaines à me parvenir
à cause de l'organisation délirante de "La Poste"...
--
yt