2013-10-17 7 views
0

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> 

Répondre

1

semble que XmlBeans est la cause de cela.
De leurs installation instructions:
"Exigences

Avant d'installer XMLBeans, vous aurez besoin d'avoir JDK 1.4 installé et Ant Une fois que vous avez ceux-ci, suivez les étapes ci-dessous.".

Probablement des xmlbeans internes!? Vérifiez leurs sources.
Voir une autre affectation stackoverflow des alternatives si c'est une option:
Java Xml Binding

+0

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

+0

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

+0

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

Questions connexes