2010-02-05 3 views
8

J'ai quelques fichiers jar, (dont certains dépendent les uns des autres), et j'essaie d'avoir Ivy les gérer pour mon projet. Je ne veux pas créer de référentiel «local» (basé sur l'utilisateur), car je veux que les autres utilisateurs puissent extraire mon projet svn et l'exécuter sans configuration de référentiel local/partagé. Pour diverses raisons, je ne peux pas ajouter ces fichiers au référentiel que nous utilisons actuellement.Comment créer une dépendance Ivy pour les fichiers jars locaux dans votre projet/lib?

Le projet dépend de ces fichiers et je les utilise dans SVN. Dans le passé, j'avais mes fichiers xml à dépendance Ivy normale. Ces fichiers utilisent un point de fichier xml de paramètres vers le référentiel distant. Dans le passé, à la dernière minute, j'avais utilisé une tâche de construction pour copier ces fichiers d'un dossier lib dans le dossier construit. Cela ressemble à un abus cassé qui ignore les caractéristiques du résolveur ivy filesystem.

(ivy.xml et build.xml pour 3 projets assemblables utilisent la même ivysettings.xml, dans un autre répertoire de base.)

Je sens que je suis 90% du chemin, que dois-je préciser mon résolveur de système de fichiers à dans ivysettings.xml pour faire ma première résolution dans la chaîne de résolveur vérifier les fichiers jar dans projectdir/lib?

Répondre

3

Avez-vous regardé la tâche ivy buildlist?

Vous pouvez utiliser ceci pour contrôler l'ordre dans lequel vos 3 modules sont construits. Au fur et à mesure que chaque module est construit, il peut publier dans un référentiel local, garantissant que le pot est présent à temps pour le prochain module de la chaîne.

build.xml 
    ivysettings.xml 
    --> module1 --> build.xml 
        ivy.xml 
    --> module2 --> build.xml 
        ivy.xml 
    --> module3 --> build.xml 
        ivy.xml 

Le fichier de paramètres peut être partagé par tous les projets. Il précise que les modules que vous construisez sont disponibles localement, tout le reste est du référentiel par défaut à tous les utilisateurs de votre projet (Dans ce cas Maven)

<ivysettings> 
     <settings defaultResolver="maven2"/> 
     <resolvers> 
       <ibiblio name="maven2" m2compatible="true"/> 

       <filesystem name="local"> 
        <ivy pattern="${local.rep.dir}/.."/> 
        <artifact pattern="${local.rep.dir}/.."/> 
       </filesystem> 
     </resolvers> 
     <modules> 
       <module organisation="org.me" name="module1" resolver="local"/> 
       <module organisation="org.me" name="module2" resolver="local"/> 
       .. 
     </modules> 
</ivysettings> 

Enfin lorsque vous publiez, vous pouvez l'extérieur utiliser le lierre installer tâche de copier les modules que vous avez déjà publiés localement dans l'emplacement final du référentiel

Questions connexes