Qu'est-ce que le format de fichier VM ?
Les fichiers .vm contiennent des modèles Apache Velocity - des modèles de texte côté serveur écrits en Velocity Template Language (VTL). Velocity est un moteur de modèles basé sur Java maintenu par la Apache Software Foundation ; .vm est son extension de fichier de modèle par défaut.
Un modèle Velocity mélange du contenu de sortie statique (HTML, XML, SQL ou texte brut) avec des directives VTL et des références de variables résolues au moment de l'exécution par rapport à un objet de contexte Java. Les constructions VTL de base incluent :
$variableou${variable}- affiche une valeur du contexte,#set( $x = 'valeur' )- assigne une variable,#if/#else/#end- blocs de sortie conditionnels,#foreach( $item in $list )- itération,#macro- définit des fragments de modèle réutilisables,#parse/#include- intègre d'autres fichiers.vm.
Velocity est utilisé dans les applications web Java héritées, les générateurs de code, les systèmes de modèles d'e-mails et les archétypes Apache Maven. Le moteur nécessite Java 8 ou une version ultérieure (Velocity 2.x) ; la dernière version 1.x était Velocity 1.7 en 2010.
Note : l'extension .vm est également utilisée par VMware pour les fichiers de mémoire et de configuration de machines virtuelles - une utilisation totalement indépendante et plus couramment rencontrée. Lorsqu'un fichier .vm est trouvé sur un système où VMware est installé, il appartient presque certainement à VMware, et non à Velocity.
Les alternatives modernes à Velocity incluent FreeMarker (Apache), Thymeleaf et Mustache.
Sécurité et sûreté
RISQUE : LOWFichier texte brut ; non exécutable en soi. Dans une application Java, les modèles Velocity peuvent appeler des méthodes Java arbitraires disponibles dans le contexte, donc des fichiers .vm malveillants dans une application serveur pourraient causer une injection côté serveur si une entrée non fiable atteint le moteur. Aucun risque pour les utilisateurs finaux ouvrant le fichier dans un éditeur de texte.
Détails du format
en bref- Configuration de machine virtuelle VMware - VMware Workstation et VMware Player utilisent .vm comme l'une des nombreuses extensions de fichiers de composants de machine virtuelle ; sans rapport avec le templating.
- Sauvegarde de jeu ScummVM - L'émulateur de jeux d'aventure ScummVM utilise .vm pour les fichiers d'état de sauvegarde dans certains moteurs de jeu.
Programmes qui ouvrent les fichiers VM
Détails techniques
spécifications approfondies| Développeur | Apache Software Foundation |
| Exigence d'exécution | Java 8 ou ultérieur (Velocity Engine 2.x) ; la dernière version 1.x était Velocity 1.7 en 2010 |
| Type de fichier | Modèle Velocity Template Language (VTL) côté serveur en texte brut |
| Encodage | UTF-8 par défaut ; configurable via `input.encoding` dans `velocity.properties` |
| Taille de fichier typique | 1 Ko - 200 Ko |
| Syntaxe des variables | `$variable` ou `${variable}` - valeurs résolues à partir d'un objet de contexte Java Velocity au moment de l'exécution |
| Préfixe de directive | `#` - directives intégrées : `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Inclusion de modèle | `#parse` intègre et évalue un autre fichier `.vm` ; `#include` l'insère comme texte brut non traité |
| Cas d'utilisation courants | Vues d'applications web Java, générateurs de code, modèles d'e-mails, archétypes de projets Apache Maven |
| Conflit d'extension | `.vm` est également utilisé par VMware pour les fichiers de mémoire et de configuration de machines virtuelles - sans rapport et plus répandu |
| Alternatives notables | Apache FreeMarker (.ftl), Thymeleaf (modèles .html), Mustache (.mustache) |
| Formats de sortie | Tout format textuel : HTML, XML, SQL, texte brut ou code source - Velocity est agnostique au format de sortie |
| Publié | 1999 (Velocity originally from Apache Jakarta project) |
| Dernière version | Apache Velocity Engine 2.4 (2023) |
| Standard ouvert | Oui · libre de droits |
| Spécification | velocity.apache.org |
Conversions VM
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers VM.