J'utilise JAXB sur un projet. l'attrait de JAXB est qu'il est livré avec le JDK, j'ai été d'utiliser xjc.exe sur la ligne de commande pour générer les fichiers .java à partir d'un schéma. Je n'arrive pas à trouver la tâche Ant JAXB, bien qu'il y ait un téléchargement à http://jaxb.java.net Cependant, je veux utiliser le JAXB qui est inclus dans le JDK est-il un moyen d'appeler JAXB à partir de quelle classe l'appel xjc.exe ?Comment exécuter le compilateur JAXB à partir de ANT
Répondre
<target name="generate-jaxb-code">
<java classname="com.sun.tools.internal.xjc.XJCFacade">
<arg value="-p" />
<arg value="com.example"/>
<arg value="xsd/sample.xsd" />
</java>
</target>
Nous sommes allés à la chasse dans la tools.jar et a trouvé le XJCFacade.class dans com.sun.tools.internal le code ci-dessus ont testé cela fonctionne, il produit la sortie en tant que xjc.exe Il semble que XJC.exe appelle ce code com.sun.tools.internal.xjc.XJCFacade
L'une de mes exigences clés était que le fichier ant avait du travail dans eclipse sans avoir à inclure un chemin nommer le JDK de cette façon le fichier serait portable sur les systèmes d'exploitation. Je suppose que tools.jar est inclus dans le classpath via les options de préférences JRE installées.
Voici un lien utile:
Java SE 6 ne livre pas la tâche Ant (voir 7.1.3):
Essentiellement, ils les stratégies suivantes:
<target name="xjc" description="....">
<exec executable="${jdk.dir}/bin/xjc.exe">
<arg value="-d"/>
<arg value="${src.dir}"/>
<arg value="-p"/>
<arg value="com.mydomain.jaxb"/>
<arg value="${etc.dir}/myschema.xsd"/>
</exec>
</target>
Merci pour notre réponse, je connaissais déjà ce lien. Le problème est que cette solution nécessite que jaxb-xjc.jar soit présent sur le chemin de classe et que la classe référencée pour la tâche ANT n'existe nulle part sur le chemin de classe. Je ne veux pas avoir à télécharger le JAXB2 RI et juste pour utiliser la tâche ANT. Je suis à la recherche d'une solution qui ne nécessite pas de télécharger quoi que ce soit sur le net autre que le dernier JDK 6 et qui fonctionne bien avec eclipse ant – ams
merci pour votre réponse à jour il était très utile – ams
Vous ne pouvez pas trouver plusieurs exemples de projets Ant/JAXB dans Basics jaxb2:
- 1. Exécuter un script Ant à partir d'un autre script Ant?
- 2. comment exécuter un script ant existant à partir de groovy
- 3. Génération de schéma XML à partir de fichiers de classe JAXB dans Ant
- 4. Comment exécuter la commande UNIX à partir du système Windows XP à l'aide de ANT
- 5. Ordre du compilateur et des attributs JAXB
- 6. Comment faire pour que le générateur Eclipse Ant utilise le compilateur intégré à Eclipse?
- 7. Ant EXEC ne parvient pas à exécuter le script bash
- 8. Comment personnaliser JAXB Marshalling si vous générez des beans JAXB à partir de XML
- 9. Exécuter le complément à partir de PrebuildEvent
- 10. JAXB Ant erreur de tâche: xjc2 [ERREUR] null lieu inconnu
- 11. Comment exécuter le compilateur C# 4.0 avec la classe CSharpCodeProvider?
- 12. Comment puis-je exécuter un fichier VBScript à partir du script Ant?
- 13. Apache Ant: Exécuter ant sans afficher les noms des cibles
- 14. comment générer javaDoc à partir d'un fichier jaxb
- 15. Trouver répertoire de travail à partir de Ant
- 16. Exécuter un fichier jar en utilisant Ant
- 17. JAXB crée une carte à partir de XSD
- 18. JAR de construction Ant à partir de plusieurs packages
- 19. exécuter la classe dans le fichier jar avec ant
- 20. Exécuter py.test à partir d'emacs
- 21. La tâche ANT APT échoue en éclipse mais fonctionne à partir du shell
- 22. Exécuter inconditionnellement une tâche dans Ant?
- 23. Exécuter une tâche Ant avec Maven
- 24. Exécuter le service Windows à partir de winform
- 25. Exécuter le package SSIS à partir de VB6
- 26. Pouvez-vous exécuter le code C# à partir de C++?
- 27. (IronPython) Exécuter PythonFunction à partir de C#
- 28. appel cible ant dans le fichier xml connu à partir d'une tâche Ant
- 29. exécuter grep à partir de GNU make
- 30. Exécuter le script de connexion à partir de l'application .NET
Pour le chemin vers le fichier de schéma lui-même (ainsi que pour l'attribut -d), pensez à utiliser au lieu de La version 'path' convertira automatiquement les séparateurs de chemins, évite les caractères spéciaux pour le shell , etc. Sans utiliser de chemin, il y a une chance d'une vulnérabilité d'injection de commande dans votre fichier de construction si le chemin ou le nom de fichier est généré à partir de n'importe quel type de données externes. –
pendor