Je gère un ancien projet Java initialement écrit en version 1.4 et qui est en cours de migration vers un environnement Java 7. Le projet utilise Ant.Recherche de l'origine de l'argument javac -source 1.4 de Ant
Lors de la construction que je reçois l'avertissement suivant
warning: [options] bootstrap class path not set in conjunction with -source 1.4
et je pense que je l'ai maintenant fait la lecture assez pour comprendre que c'est parce que j'utilise le compilateur Java 7 pour compiler le code à exécuter dans 1.4. Cependant, je ne veux pas cela - je veux utiliser le compilateur 7 pour construire le code 7.
En utilisant ant -v
Je vois que l'argument -source 1.4
est passé à la commande javac mais je ne trouve pas d'où il vient. Aucun des fichiers build.properties utilisés par build.xml ne fournit cet argument. Le projet utilise une fonctionnalité xmlbean et l'avertissement est émis lors de la construction de la cible xmlbean dans build.xml.
J'ai d'autres projets qui subissent un processus similaire et ceux-ci n'émettent pas d'avertissement pendant la construction. Dans ces projets Ant ne passe pas -source 1.4. à javac Ils n'utilisent pas xmlbeans alors j'ai pensé que peut-être le problème pourrait être lié à cela. Après beaucoup de recherches, j'ai décidé de mettre le 1.4 rt.jar sur le classpath et de l'oublier. Cependant cela n'a pas aidé. Je l'ai d'abord inclus dans le classpath de la cible xmlbeans, puis en tant que propriété 'bootclashpath' pour l'ensemble du fichier build.xml, mais pas de joie.
La section pertinente de build.xml ressemble à ce
<target name="xmlbeans" depends="setup">
<xmlbean classgendir="${schema.compile.dir}" destfile="${dist.dir}/${schema.jar.file}" failonerror="true">
<fileset dir="${config.dir}">
<include name="**/*.xsd"/>
</fileset>
<classpath>
<pathelement location="${lib.dir}/xbean.jar"/>
<pathelement location="${lib.dir}/jsr173_1.0_api.jar"/>
</classpath>
</xmlbean>
</target>
<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean">
<classpath>
<pathelement location="${lib.dir}/xbean.jar"/>
<pathelement location="${lib.dir}/jsr173_1.0_api.jar"/>
</classpath>
</taskdef>
Intéressant, mais pouvez-vous me dire comment XmlBeans seraient les arguments influent compilateur passé par Ant? Je ne sais même pas comment les jars inclus communiqueraient cela au gestionnaire de construction – tomfumb
see => http://grepcode.com/file/repo1.maven.org/maven2/org.apache.xmlbeans/xmlbeans/2.4. 0/org/apache/xmlbeans/impl/tool/XMLBean.java - ligne 264 commentent aussi la ligne 782 = "Générer une source java compatible avec la version donnée Actuellement, seuls" 1.4 "ou" 1.5 "sont supportés et" 1.4 " est la valeur par défaut. " – Rebse
Eh bien je ne comprends toujours pas comment les deux communiquent mais il semble que cela pourrait très bien être le problème! Merci. Maintenant, j'ai besoin de savoir s'il est possible d'utiliser rt.jar pour supprimer l'avertissement – tomfumb