Home

12print.it

stampa foto gratis!!

Digitalpix.it

Visita il sito Digitalpix!

IVY e la gestione delle librerie

Stampa E-mail
Manuali - Programmazione - Eclipse
document_eclipse IVY e la gestione delle librerie del proprio programma
Come gestire al meglio le librerie del proprio programma java? Per fare questo c'è IVY.
IVY serve a gestire le librerie del proprio progetto in maniera da scaricarle in automatico da alcuni repository comuni senza avere la necessità di averle in locale o di conservarle assieme al progetto ad esempio sul proprio CVS (o SVN che sia).
Supponiamo di avere un progetto Java sotto Eclipse.
Supponiamo che questo progetto sia di typo WEB Dinamico e che faccia uso di una serie di librerie.

Nella root del progetto bisogna creare il file ivy.xml così fatto:

<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="NOME_ORGANIZZAZIONE" module="NOME_MODULO_ECLIPSE"/>
<configurations defaultconfmapping="default">
<conf name="default" />
</configurations>
<dependencies defaultconf="default">
<dependency org="javax.activation" name="activation" rev="1.1" />
</dependencies>
</ivy-module>


Dove per ogni libreria del progetto bisogna mettere una linea come la seguente:
<dependency org="javax.activation" name="activation" rev="1.1" />

Assieme al file ivy.xml ci vuole il file di setting di IVY, ivysettings.xml così fatto:

<ivysettings>
<caches checkUpToDate="false">
<cache name="mycache" basedir="${ivy.default.ivy.user.dir}/cache" />
</caches>
<settings defaultResolver="local" />
<resolvers>
<chain name="local" returnFirst="true">
<filesystem name="fornitori">
<artifact pattern="${ivy.lib.dir}/[artifact](-[revision]).[type]"/>
<artifact pattern="${ivy.lib.dir}/[artifact](-[revision]).[ext]"/>
</filesystem>
<url name="MIO_DOMINIO" m2compatible="true">
<artifact pattern="http://maven2.MIO_DOMINIO.it/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</url>
<url name="mirror1" m2compatible="true">
<artifact pattern="http://mirrors.dotsrc.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</url>
<url name="mirror2" m2compatible="true">
<artifact pattern="http://ftp.cica.es/mirrors/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</url>
<url name="mirror3" m2compatible="true">
<artifact pattern="http://repository.jboss.com/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</url>
<url name="repo1" m2compatible="true">
<artifact pattern="http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</url>
<url name="ibiblio_maven2" m2compatible="true">
<artifact pattern="http://www.ibiblio.org/maven2/[organisation]/[module]/[revision]/[artifact](-[revision]).[ext]"/>
</url>
<url name="ibiblio_mirror" m2compatible="true">
<artifact pattern="http://mirrors.ibiblio.org/pub/mirrors/maven2/[organisation]/[module]/[revision]/[artifact](-[revision]).[ext]"/>
</url>
<ibiblio name="ibiblio"/>
</chain>
</resolvers>
</ivysettings>


Con questa istruzione
<settings defaultResolver="local" />
si indica che si vuole risolvere i domini prima in locale e poi si dovranno utilizzare gli altri repository elencati.

Con questa istruzione
<url name="MIO_DOMINIO" m2compatible="true">
<artifact pattern="http://maven2.MIO_DOMINIO.it/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
</url>

si indica un proprio dominio di maven con le proprie librerie.
In questa maniera si può mettere su un proprio repository MAVEN.

Poi bisogna modificare il file build.xml del progetto per inserire un opportuno TAG per il recupero delle librerie tramite ivy:
<project name="NOME_MODULO_ECLIPSE" default="target.dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- // Ivy related targets -->
<target name="retrieveByIvy" description="Retrieves the libraries if needed by IVY.">
<ivy:settings file="${basedir}/ivysettings.xml"/>
<condition property="ivy.conf.name" value="default">
<not>
<isset property="ivy.conf.name"/>
</not>
</condition>
<echo message="Ivy conf name: ${ivy.conf.name}"/>
<ivy:resolve file="${basedir}/ivy.xml" conf="${ivy.conf.name}"/>
<ivy:retrieve conf="${ivy.conf.name}"
pattern="${lib.dir}/[artifact](-[revision]).[ext]"/>
</target>


Il TAG da inserire è questo:
<target name="retrieveByIvy" description="Retrieves the libraries if needed by IVY.">

Nel TAG project bisogna inserire questo
xmlns:ivy="antlib:org.apache.ivy.ant"

Se ci sono librerie che devono essere caricate dal locale bisogna avere un MAVEN installato come repository. Ovviamente!

Supponiamo di essere sul nostro server MAVEN.
Come vengono organizzate le librerie?
Se abbiamo
<dependency org="javax.activation" name="activation" rev="1.1" />

Sul server ci saranno le cartelle javax\activation per l'attributo org; poi ci sarà la cartella activation per l'attributo name; poi
ci sarà la cartella 1.1 per l'attributo rev e dentro ci sarà la libreria activation-1.1.jar.

RIFERIMENTI
A questo indirizzo (cliccate qui) trovate un utilissimo sito web che vi aiuta nello scovare i repository online per le vostre librerie. E' sufficiente ricercare la libreria per nome e il sito vi dirà le versioni e i repository disponibili.
 
Altri Articoli :

» Concorso Nazionale di Fotografia

Concorso Nazionale di Fotografia - 2009Sono lieto di presentarvi la Prima Edizione del Concorso Nazionale di Fotografia organizzata dal Circolo Fotografico “Torre Mordillo”.

» Come creare uno schema XSD da un documento XML

Come creare uno schema XSD a partire da un documento XML?Un problema molto comune è il seguente. Si ha un documento XML e a partire da questo documento si vuole generare il corrispondente schema XSD. Inoltre esiste un'altra utilissima opportunità. Quella di creare a partire da uno schema XSD una...

» Nuovo Circolo fotografico

Presentato il Circolo fotografico "Torre Mordillo"A Spezzano Albanese è nato un nuovo e promettente circolo fotografico.Lo stesso circolo presenta una mostra fotografica alla quale io stesso partecipo ;)

» Java e il problema dell'encoding dei caratteri

Java e il problema dell'encoding dei caratteriOggi voglio trattare un problema abbastanza vasto sull'encoding dei programmi in java. In generale la codifica più utilizzata è la UTF-8 che comprende un range vastissimo di caratteri che non dovrebbe creare problemi per nessuna lingua. Utilizzare...

» Nuovi link: Software

Nuovi link: SoftwareAggiornata la pagina dei link per la categoria Software.Questa categoria contiene i link ai migliori software gratuiti (freeware, open-source,...) per sistemi operativi Microsoft.Ho aggiunto il link all'ottimo software Defraggler. Questo software, semplice ed intuitivo, si...

My Google channel

XHTML Validity CSS Validity