Ant Ne crée pas NL lorsque vous faites écho à un fichier

Au départ, j’avais ceci:

   

Et j’ai eu ça dans mon dossier:

  This is line#1This is line #2This is line#3 

Donc j’ai essayé:

   This is line #1 This is line #2 This is line #3  

Et a obtenu:

  This is line#1This is line #2This is line#3 

J’ai fait ça:

   This is line #1${line.separator} This is line #2${line.separator} This is line #3${line.separator}  

Et a obtenu:

  This is line#1This is line #2This is line#3 

J’ai fait ça:

   This is line #1
 This is line #2
 This is line #3
  

Et a obtenu:

  This is line#1This is line #2This is line#3 

J’ai même essayé ceci:

   This is line #1
 This is line #2
 This is line #3
  

Et encore eu:

  This is line#1This is line #2This is line#3 

Si je fais l’une de ces opérations sur la console, elle s’imprime sur des lignes distinctes. Les enregistrer dans un fichier et les lignes n’apparaissent pas.

Je suis sur Win7, Ant 1.8 quelque chose.

Des idées?


Windows Thing?

J’ai essayé chacun d’eux sur mon Mac. Le premier m’a donné les mêmes résultats. Cependant, la deuxième voie m’a donné trois lignes dans le fichier. La troisième méthode avec le ${line.separator} ajouté a ignoré toutes les autres lignes. La quasortingème manière d’utiliser &10; m’a donné toutes les autres lignes avec un ^M à la fin (après tout, le Mac est Unix et n’utilise pas la fin du CRLF, mais juste LF).

Et, en utilisant , vous également créé des lignes distinctes.


Plus d’information

J’ai retracé le problème à l’extrait suivant de mon build.xml :

Cela fonctionne comme annoncé. Autrement dit, les espaces blancs et NL apparaissent dans le fichier résultant:

     Jenkins Project: ${env.JOB_NAME} Jenkins Build Number: ${env.BUILD_NUMBER} Build Date: ${build.date}  <!--    -->  

Cela ne veut pas:

     Jenkins Project: ${env.JOB_NAME} Jenkins Build Number: ${env.BUILD_NUMBER} Build Date: ${build.date}      

La seule différence entre ces extraits réside dans le fait que je fais trois tâches après avoir écrit le fichier. Les trois tâches antcall ont toutes une clause if , elles peuvent donc ou non s’exécuter en fonction des propriétés définies. Ceci est un modèle de construction pour nos équipes de développement, alors j’aimerais vraiment que cela fonctionne.

Pourquoi les pourraient- causer des problèmes? Au fait, parfois il est tellement cassé, je dois rouvrir une nouvelle fenêtre de console pour que les trucs de NL fonctionnent.

J’ai déjà rencontré un problème similaire, et il s’agissait d’un problème de page de code Windows.

Le projet Ant ci-dessous crée quatre fichiers en utilisant la tâche d’ echo :

  • echo1.txt
  • echo2.txt
  • echo3.txt
  • echo4.txt

La vue hexadécimale de chaque fichier est la suivante lorsque le projet est exécuté sur Windows 7 en utilisant Ant 1.8.x:

 // echo1.txt // HEX // TEXT 6c 69 6e 65 20 23 31 line #1 6c 69 6e 65 20 23 32 line #2 6c 69 6e 65 20 23 33 line #3 // echo2.txt // HEX // TEXT 6c 69 6e 65 20 23 31 0a line #1 (0a => line feed) 6c 69 6e 65 20 23 32 0a line #2 6c 69 6e 65 20 23 33 0a line #3 // echo3.txt // HEX // TEXT 6c 69 6e 65 20 23 31 0d 0a 0a line #1 (0d => carriage return) 6c 69 6e 65 20 23 32 0d 0a 0a line #2 6c 69 6e 65 20 23 33 0d 0a 0a line #3 // echo4.txt // HEX // TEXT 6c 69 6e 65 20 23 31 0d 0a line #1 6c 69 6e 65 20 23 32 0d 0a line #2 6c 69 6e 65 20 23 33 0d 0a line #3 

Seul echo4.txt [qui place les trois lignes dans l’atsortingbut de message séparé par ${line.separator} ] produit la ligne correcte se terminant sous Windows (retour chariot + ${line.separator} ligne). La sortie était la même lorsque le fichier de projet était modifié dans le Bloc-notes (qui utilise le retour chariot + le saut de ligne), ainsi que les éditeurs qui conservent la fin de ligne Unix (un seul saut de ligne). Il semble que lorsque Ant parsing les fichiers XML, les fins de ligne sont normalisées en un seul caractère de saut de ligne.

Projet Ant

           line #1 line #2 line #3     line #1${line.separator} line #2${line.separator} line #3${line.separator}         

Avez-vous essayé \n comme disjoncteur?