The Coder's Breakfast - Mot-clé - ant - Commentaires2022-11-22T14:44:11+01:00Olivier Croisierurn:md5:7bccc57fa40daaa0bbb47c16f3d66529DotclearUtiliser Gradle pour télécharger des librairies - Gregory Boissinoturn:md5:a78ed88e9c59a5a922613889380dd0882009-08-10T16:48:32+01:002009-08-10T15:48:32+01:00Gregory Boissinot<p>Désormais l’utilisation de la tâche copy de Ant est déprécié au profit de la tâche Copy de Gradle. Celle-ci fournit une API plus riche (inclusions et exclusions fine de fichiers, filtering, changement de noms des fichiers, …).<br />
Ainsi, si vous utilisez la dernière monture de Gradle (v0.7), il est préférable d’écrire la tâche de récupération des librairies comme ci-dessous:</p>
<p>task retrieveJars << {<br />
copy {<br />
from configurations.jars<br />
into new File('lib')<br />
}<br />
}</p>
<p>ou comme ceci:</p>
<p>task(retrieveJars, type: Copy) {<br />
from configurations.jars<br />
into new File('lib')<br />
}</p>Utiliser Gradle pour télécharger des librairies - Gregory Boissinoturn:md5:24a9d1889df30a7157063aa9295a4f902009-05-28T14:14:09+01:002009-05-28T13:14:09+01:00Gregory Boissinot<p>Juste une petite remarque, une closure a toujours au moins un argument implicite it qui sera disponible dans le corps de la closure. On peut l'utiliser si aucun paramètre explicite n’est défini.</p>
<p>Nous aurions donc pu avoir dans notre exemple</p>
<p>task retrieveJars << {</p>
<pre> configurations.jars.each {
ant.copy(file: it, todir:'lib')
}</pre>
<p>}</p>Utiliser Gradle pour télécharger des librairies - Olivier Croisierurn:md5:673094379892b8b72bdaff4d4b7e705a2009-05-28T09:55:09+01:002009-05-28T08:56:28+01:00Olivier Croisier<p>Je ne suis pas contre le principe des closures, bien au contraire. C'est plus léger et lisible que les classes anonymes. Et on doit pouvoir leur trouver des usages plus puissants également.</p>
<p>Ce que j'aime moins, c'est leur syntaxe radicalement différente de celle du reste du programme... En particulier, le fait que la dernière expression évaluée soit "magiquement" retournée me dérange, de même que la petite flèche pour séparer les arguments du code. Pourquoi ne pas passer les arguments entre parenthèses comme d'habitude, et utiliser "return" pour renvoyer explicitement une valeur ?<br />
De même, comment les exceptions sont-elles déclarées et gérées ?</p>
<p>Si chacun réinvente sa propre syntaxe dans son coin, on n'est pas sortis de l'auberge...</p>Utiliser Gradle pour télécharger des librairies - HollyDaysurn:md5:5b626fca89f1304b525215f26477c6c92009-05-28T09:33:58+01:002009-05-28T08:33:58+01:00HollyDays<p>Je rêve ou la dernière étape est écrite avec une closure ? Serais-tu devenu un converti, Olivier ? Je croyais que tu les considérais comme peu lisibles ?</p>Utiliser Ant et Ivy pour télécharger des librairies - Grégory Boissinoturn:md5:ce29c907748e3adb39b85a11bc6ab33e2009-04-26T22:27:35+01:002009-04-26T21:27:35+01:00Grégory Boissinot<p>Pour information, concernant les moteurs de recherche d'artefacts Maven, je déconseille vivement le moteur mvnrepository.com qui n'est pas à jour dans son index. De plus, il est souvent indisponible.</p>
<p>mvnindex.org (couplé à son plugin Eclipse) est très bien mais limité au repository central Maven (<a href="http://repo1.maven.org/maven2" title="http://repo1.maven.org/maven2" rel="nofollow">http://repo1.maven.org/maven2</a>).</p>
<p>Pour ma part, j'utilise le très bon et très complet moteur de recherche MvnBrowser<br />
<a href="http://www.mvnbrowser.com/" title="http://www.mvnbrowser.com/" rel="nofollow">http://www.mvnbrowser.com/</a></p>Utiliser Ant et Ivy pour télécharger des librairies - Grégory Boissinoturn:md5:0174dd10fdabbf38d3c4601c3356af152009-04-26T21:41:51+01:002009-04-26T21:15:37+01:00Grégory Boissinot<p>Ivy est le gestionnaire de dépendances le plus puissant du marché.</p>
<p>Vous pouvez effectivement utiliser ce gestionnaire de dépendances pour télécharger toutes vos librairies. Comme le signale Olivier, cela est très utile pour télécharger toutes les dépendances transitives de nombreux framework comme Hibernate, Spring, Wicket, …</p>
<p>Par défaut, Ivy utilise un resolver Maven 2 permettant de bénéficier de la fonctionnalité la plus utile de Maven, c'est-à-dire le contenu des repository Maven et les méta données. En effet, devant la popularité et la très grande utilisation de Maven, les repository Maven contiennent la quasi totalité des frameworks open-source. Et pour chaque artefact, nous avons les dépendances nécessaires.</p>
<p>Mais pour ce besoin, au lieu de coupler Ivy à un builder comme Ant (ou à d'autres comme Gant ou Gradle), je vous conseille d'utiliser le gestionnaire de dépendance Ivy en standalone. Il suffit d'écrire votre descripteur de dépendance Ivy : le fichier ivy.xml; Ensuite il suffit d'invoquer en ligne de commande<br />
java -jar ivy-2.1.0-rc1.jar -retrieve lib/[artifact].[ext] -ivy ivy.xml</p>
<p>L'invocation de cette commande téléchargera, dans le répertoire lib situé à la racine du répertoire de l'invocation de la commande, toutes les dépendances et dépendances transitives, décrites dans le fichier ivy.xml.</p>
<p>Mais si vous ne souhaitez pas écrire vos dépendances dans un fichier XML, vous pouvez passez les dépendances directement à la ligne de commande comme ceci<br />
java -jar ivy-2.1.0-rc1.jar -ivy ivy.xml -retrieve lib/[artifact].[ext] -dependency org.apache.wicket wicket 1.3.5 -dependency jfree jfreechart 1.0.5</p>
<p>Plus d'informations sur la documentation officielle<br />
<a href="http://ant.apache.org/ivy/history/2.1.0-rc1/standalone.html" title="http://ant.apache.org/ivy/history/2.1.0-rc1/standalone.html" rel="nofollow">http://ant.apache.org/ivy/history/2...</a></p>