2008-11-07 5 views
1

Avec plusieurs développeurs travaillant sur la même application Tomcat, j'aimerais indiquer à l'application d'effectuer l'installation sur un chemin différent, en fonction de l'utilisateur/client/contrôle de révision actuel. Donc, si Bob construit, l'application devrait être installée dans l'environnement de test de Bob, peut-être/bob1 ou quelque chose comme ça. Bob peut avoir plusieurs clients/vues/espaces de travail de contrôle des révisions avec lesquels il travaille afin d'avoir/bob1,/bob2,/bob3, etc.Construire avec fourmi: options de construction dynamiques?

L'emplacement d'installation est spécifié dans le fichier build.properties. Existe-t-il un moyen d'éviter de vérifier ce fichier et de le modifier pour chaque vue d'utilisateur et de contrôle de révision spécifique?

Est-ce que "ant install" peut prendre des arguments ou être configuré pour prendre en compte les variables d'environnement pour la cible d'installation?

+0

Pourriez-vous ellaborate? Vous voulez que plusieurs développeurs se déploient sur la même instance Tomcat? Si oui, je voudrais regarder dans http://tomcat.apache.org/tomcat-6.0-doc/config/context.html – alex

Répondre

5

J'utilise généralement une variation sur les propriétés par défaut réponse déjà donnée:

<property file="local.properties" /> 
<property file="default.properties" /> 

Je lis les propriétés locales d'abord le fichier et la valeur par défaut d'une seconde. Les utilisateurs n'éditent pas celui par défaut (puis le vérifient accidentellement), ils définissent simplement les propriétés qu'ils veulent remplacer dans le fichier local.properties.

+0

+1: J'utilise une construction très similaire, mais ajoute généralement "$ {user.home}/.ant/$ {ant.project} -local.properties "afin que je (ou d'autres développeurs) puisse garder trace de plusieurs ensembles de ces personnalisations sans avoir à les chercher. –

2

Vous pouvez remplacer les propriétés Ant à partir de la ligne de commande.

ant -Dinstall.location=/bob1 install 

Voir Running Ant pour plus d'informations.

0

La définition des propriétés avec l'option -D sur la ligne de commande est correcte, bien qu'elle puisse devenir fastidieuse si elles sont fréquentes. Afin de résister à l'envie d'envelopper l'invocation de fourmis dans un script bash, il est courant d'importer des fichiers de propriétés.

Dans le fichier principal de construction vous mettre:

<property file="default.properties" /> 

Ensuite, vous avez un fichier nommé default.properties.sample avec un exemple de configuration. Ceci est en cours de vérification dans le contrôle de version. Les développeurs vérifient default.properties.sample, le copient dans default.properties et le modifient en fonction de leurs besoins.

Vous devez définir un indicateur par défaut ignorer pour default.samples afin d'éviter qu'il ne soit accidentellement vérifié (svn: ignore avec subversion).

1

Cette réponse est assez tardive mais je voulais juste la mettre pour quelqu'un qui pourrait en avoir besoin. La réponse se rapporte à la deuxième partie de votre question. "Peut-on installer" prendre des arguments ou être configuré pour prendre en compte les variables d'environnement pour la cible d'installation? "

  1. Définir le virable de l'environnement dans votre fichier de construction:

    <property environment="env" /> 
    
  2. référence la variable d'env et l'utiliser pour indiquer un chemin. Ceci est fait dans ma définition de classpath dans mon fichier de construction. Il dit inclure un jar nommé api.jar du répertoire lib weblogic. Vous pouvez accéder à n'importe quel autre chemin tant qu'un environnement associé est défini pour cela. Par exemple, vous pouvez accéder à Program Files, Documents, Java Home, etc. si vous leur avez envoyé des variables d'environnement.Ici, la variable d'environnement défini pour le répertoire d'installation weblogic est BEA_HOME

    <fileset dir="${env.BEA_HOME}/wlserver_10.0/server/lib"> 
        <include name="api.jar" /> 
    </fileset> 
    
Questions connexes