J’utilise ant pour comstackr une application Java. Le problème est que certains développeurs sont sur Win 7 et d’autres sur XP et Vista. Une partie de la compilation consiste à construire un msi en utilisant WIX, sur win7, il s’agit d’un répertoire et sur xp et vista, dans un autre.
La tâche de fourmi est contrôlée dans Maven. Je suis après un moyen de faire la différence entre les systèmes d’exploitation Windows dans ant avec une balise conditionnelle pour définir le répertoire wix. Des idées?
Je sais que ce sera dans ce format:
Check for windows 7 set wix path to win 7 installation set to vista/xp wix installation
Toute aide est la bienvenue.
Il semblerait que l’ANT
puisse tester le nom, la famille et la version du système d’exploitation:
Sur la base de ce lien, certaines propriétés liées au système d’exploitation peuvent être interrogées. L’une est la propriété de family
normale utilisée dans le code commun:
Ma version d’ANT n’imprime pas de valeur résolue pour ${os.family}
.
Il y a aussi:
Voici un script de démonstration que j’ai fait pour montrer l’utilisation de ces propriétés:
Depuis que vous avez répondu à cette question, le code ci-dessus a été promu dans notre système de production, où il fournit des fonctionnalités partagées sur Windows et Mac.
@thekbb a fait une bonne suggestion de supprimer le
et de mettre à jour la définition de la cible en fonction de display_windows
, conformément au code ci-dessous:
Cela est basé sur le fait que antcall
lance une nouvelle instance de ant dans une nouvelle JVM. Certains utilisateurs peuvent trouver cette optimisation plus facile à comprendre; d’autres peuvent vouloir le faire pour des raisons de performance.