Puis-je faire la Fourmi tâche de copie spécifiques OS?
J'ai un script Ant qui effectue une opération de copie à l'aide de la "copie" de la tâche. Il a été écrit pour Windows, et a une codé en dur C:\ chemin d'accès comme le "todir' argument. Je vois le 'exec' tâche a un OS argument, est-il une manière similaire à la direction générale de la copie se basant sur des OS?
Vous devez vous connecter pour publier un commentaire.
Je recommande de mettre le chemin d'accès à une propriété, puis en définissant la propriété conditionnelle basée sur le système d'exploitation actuel.
Un autre avantage est que, une fois qu'il est dans une propriété, vous pouvez le remplacer sans avoir à éditer le script Ant.
Précédemment publié des suggestions d'un OS spécifique de la variable de travail, mais de nombreuses fois, vous pouvez tout simplement omettre le "C:" préfixe et utiliser des barres obliques (Unix) les chemins de fichiers et il fonctionnera sur les systèmes Windows et Unix.
Donc, si vous voulez copier des fichiers "C:/tmp" sur Windows et "/tmp" sur Unix, vous pouvez utiliser quelque chose comme:
Si vous ne voulez ou avez besoin de définir un chemin d'accès conditionnel basé sur les OS, il peut être simplifié comme:
Vous pouvez utiliser l'état de la tâche de la direction générale des différentes tâches de copie... de la fourmi manuel:
Déclarer une variable qui est le dossier racine de votre opération. Préfixe vos dossiers avec cette variable, y compris dans la tâche de copie.
Définir la variable basé sur le système d'exploitation à l'aide d'un conditionnel, ou la passer en argument au script Ant.
Vous ne pouvez pas utiliser une variable et de l'attribuer en fonction du type? Vous pourriez le mettre dans un
build.properties
fichier. Ou vous pouvez l'assigner à l'aide d'un condition.Ant-contrib a la <osfamily /> la tâche. Cela permettra d'exposer la famille de l'os à une propriété (que vous spécifiez le nom de). Cela pourrait être d'une certaine utilité.