2010-12-02 4 views
2

Est-il possible de charger des propriétés à partir d'un fichier zip?Ant lit un fichier de propriétés à partir d'un fichier zip

J'ai un fichier projet ant qui doit utiliser certaines propriétés qui se trouvent dans un fichier qui se trouve dans un fichier zip. Le fichier zip est stocké dans un emplacement connu sur notre serveur CI.

/known location/file.zip 
    | 
    +--- properties/details.properties 

Ce qui suit ne fonctionne pas

<project name="test" basedir="." > 
    <property file="/known location/file.zip/properties/details.properties"/> 
    .... 
</project> 

Répondre

1

Depuis des fichiers zip et fichiers jar sont fondamentalement la même chose, vous pouvez utiliser la forme url de la tâche property, avec une adresse jar.

<property url="jar:file:/known location/file.zip!/properties/details.properties" /> 

Notez le jar:file: à l'avant de l'url et le !/ séparant l'emplacement du fichier zip à partir du chemin des propriétés dans le fichier zip.

Consultez les documents JarURLConnection pour plus d'informations sur la syntaxe d'une URL jar:.

+0

Cette approche est plus propre que l'approche unzip, bien que les deux fonctionnent. –

1

vous pourriez décompressez le fichier à un emplacement temporaire, puis charger les propriétés décompressés fichier

<target name="load-zipped-props"> 
    <unzip src="${propfile-name}.zip" dest="${unzip-destination}" /> 
    <property file="${unzip-destination}/${propfile-name}.properties"/> 
</target> 
+0

Merci pour cela. Je dois juste m'assurer que chaque cible qui a besoin des propriétés a une dépendance à la cible de chargement-zipped-props. –

+0

oui, vous voudrez probablement ajouter du code pour supprimer le fichier décompressé, s'il existe déjà, avant de le dézipper –

Questions connexes