J'essaie de mettre en place un environnement de construction indépendant de la machine pour un projet de structure Spring, et la configuration de ma fourmi ne semble pas fonctionner. J'ai cherché pas mal, mais tout le monde semble penser que les références env. * Marchent à merveille. Quelqu'un pourrait-il trouver l'erreur de mes manières?
L'erreur:
bash-3.1$ ant build
Buildfile: c:\Users\mkumpan\Projects\Spring testing\build.xml
BUILD FAILED
c:\Users\mkumpan\Projects\Spring testing\build.xml:85: c:\Users\mkumpan\Projects\Spring testing\${env.CATALINA_HOME}\lib does not exist.
build.xml: 85:
<taskdef name="install" classname="org.Apache.catalina.ant.InstallTask">
<classpath refid="catalina-ant-classpath"/>
</taskdef>
référence catalina-ant-classpath:
<path id="catalina-ant-classpath">
<fileset dir="${appserver.lib}">
<include name="catalina-ant.jar"/>
</fileset>
</path>
$ {appserver.lib} déclaré dans build.properties:
appserver.home=${env.CATALINA_HOME}
appserver.lib=${appserver.home}/lib
deploy.path=${appserver.home}/webapps
En écho aux travaux envvar:
bash-3.1$ echo $CATALINA_HOME
C:\Program Files\Tomcat
Les deux grandes questions:
Ajoutez la ligne suivante au fichier build.xml
:
<property environment="env"/>
définir le préfixe lors du référencement des variables d’environnement. À partir de la page Property reference pour l’attribut environment :
le préfixe à utiliser lors de la récupération des variables d'environnement. Ainsi, si vous spécifiez environment = "myenv", vous pourrez accéder aux variables d'environnement spécifiques au système d'exploitation via les noms de propriété "myenv.PATH" ou "myenv.TERM". Notez que si vous fournissez un nom de propriété avec un "." Final. il ne sera pas doublé; c'est-à-dire environnement = "myenv". autorise toujours l'accès aux variables d'environnement via "myenv.PATH" et "myenv.TERM". Cette fonctionnalité n'est actuellement implémentée que sur certaines plates-formes. N'hésitez pas à envoyer des correctifs pour augmenter le nombre de plates-formes sur lesquelles cette fonctionnalité est prise en charge;). Notez également que les propriétés sont sensibles à la casse, même si les variables d'environnement de votre système d'exploitation ne le sont pas; par exemple. La variable de chemin système de Windows 2000 est définie sur une propriété Ant nommée "env.Path" plutôt que "env.PATH".
J'espère que vous déclarez <property environment="env."/>
avant d'utiliser la notation env.
.
Vous trouverez également ci-dessous la syntaxe dans votre script de construction pour définir des variables d'environnement spécifiques.
**Windows and OS/2**
Supposer que Ant est installé dans c:\ant. Les éléments suivants configurent l'environnement:
set ANT_HOME=c:\ant
set Java_HOME=c:\jdk-1.5.0.05
set PATH=%PATH%;%ANT_HOME%\bin
**Linux/Unix (bash)**
Supposer que Ant est installé dans/usr/local/ant. Les éléments suivants configurent l'environnement:
export ANT_HOME=/usr/local/ant
export Java_HOME=/usr/local/jdk-1.5.0.05
export PATH=${PATH}:${ANT_HOME}/bin
**Linux/Unix (csh)**
setenv ANT_HOME /usr/local/ant
setenv Java_HOME /usr/local/jdk/jdk-1.5.0.05
set path=( $path $ANT_HOME/bin )
Avoir un lien symbolique configuré pour pointer vers la version JVM/JDK rend les mises à jour plus transparentes.
Si quelqu'un d'autre a encore du mal à faire ce travail (comme je l'ai fait), et que vous ne pouvez pas (ou ne préférez pas) utiliser export
pour toutes vos propriétés, essayez set -a
comme suggéré ( here