J'ai Java fichiers source avec encodage iso-8859-1. Lorsque j'exécute ant, j'obtiens "avertissement: caractère non mappable pour l'encodage UTF-8"). Je peux éviter cela si j'exécute ant -Dfile.encoding = iso-8859-1 ou ajoute encoding = "ISO-8859-1" à chaque instruction javac.
Existe-t-il un moyen de définir la propriété globalement dans build.xml? <property name = "file.encoding" value = "ISO-8859-1"> ne fonctionne pas. Je sais que je peux ajouter une propriété foo = ISO-8859-1 et définir encoding = "$ {foo}" à chaque instruction javac, mais j'essaie d'éviter cela.
Quelques options:
-Dfile.encoding=iso-8859-1
à ton ANT_OPTS
variable d'environnement<presetdef>
pour configurer les paramètres par défaut de tous vos <javac>
invocationsSi vous avez des fichiers encodés d'une manière particulière, il est probablement préférable de le dire à javac plutôt que de forcer l'ensemble de la JVM à utiliser un encodage particulier. La tâche javac possède un attribut de codage pour cette raison.
<javac srcdir="${src.dir}" destdir="${build.classes.dir}" encoding="iso-8859-1" />
Mais vraiment, vous devez simplement convertir les fichiers source en UTF-8. Tout a meilleur goût en UTF-8. :)
Avant de changer le fichier de construction, je reçois Java erreur de compilation comme ci-dessous.
ApplicationConstant.Java:73: erreur: caractère non mappable pour l'encodage asciipublic static final String INVALID_MDTVERSION_SECOND = " This not compatible with the server’s Version";
J'ai rencontré cette erreur quand j'avais l'habitude d'avoir ant Java target as:
<javac encoding="ascii"...>
Que j'ai changé comme ci-dessous
<javac encoding="iso-8859-1" ...>
Ce problème a été résolu.
Ant elle-même ne peut pas définir les propriétés système, mais si vous le souhaitez vraiment, vous pouvez écrire un programme Java qui définit la propriété système et l'exécuter à partir d'Ant.