Hvad er VM-filformatet?
.vm-filer indeholder Apache Velocity-skabeloner - tekstskabeloner på serversiden skrevet i Velocity Template Language (VTL). Velocity er en Java-baseret skabelonmotor vedligeholdt af Apache Software Foundation; .vm er dens standard filendelse for skabeloner.
En Velocity-skabelon blander statisk output-indhold (HTML, XML, SQL eller almindelig tekst) med VTL-direktiver og variabelreferencer, der løses ved kørsel mod et Java-kontekstobjekt. Kerneelementer i VTL inkluderer:
$variableeller${variable}- udskriver en værdi fra konteksten,#set( $x = 'value' )- tildeler en variabel,#if/#else/#end- betingede output-blokke,#foreach( $item in $list )- iteration,#macro- definerer genanvendelige skabelonfragmenter,#parse/#include- indlejrer andre.vm-filer.
Velocity bruges i ældre Java-webapplikationer, kodegeneratorer, e-mail-skabelonsystemer og Apache Maven-arketyper. Motoren kræver Java 8 eller nyere (Velocity 2.x); den sidste 1.x-udgivelse var Velocity 1.7 i 2010.
Bemærk: .vm-filendelsen bruges også af VMware til virtuelle maskiners hukommelses- og konfigurationsfiler - en helt urelateret og mere almindeligt forekommende brug. Når en .vm-fil findes på et system med VMware installeret, tilhører den næsten med sikkerhed VMware, ikke Velocity.
Moderne alternativer til Velocity inkluderer FreeMarker (Apache), Thymeleaf og Mustache.
Sikkerhed og tryghed
RISIKO: LOWAlmindelig tekstfil; ikke eksekverbar i sig selv. I en Java-applikation kan Velocity-skabeloner kalde vilkårlige Java-metoder, der er tilgængelige i konteksten, så ondsindede .vm-filer i en serverapplikation kan forårsage server-side injection, hvis upålidelige input når motoren. Ingen risiko for slutbrugere, der åbner dem i en teksteditor.
Formatdetaljer
kort fortalt- VMware Virtual Machine Configuration - VMware Workstation og VMware Player bruger .vm som en af flere filendelser til virtuelle maskinkomponenter; urelateret til skabeloner.
- ScummVM Save Game - ScummVM adventure-spil-emulator bruger .vm til gemte spilfiler i visse spilmotorer.
Programmer der åbner VM-filer
Tekniske detaljer
dyb specifikation| Udvikler | Apache Software Foundation |
| Kørselskrav | Java 8 eller nyere (Velocity Engine 2.x); sidste 1.x-udgivelse var Velocity 1.7 i 2010 |
| Filtype | Almindelig tekst Velocity Template Language (VTL) skabelon til serversiden |
| Kodning | UTF-8 som standard; kan konfigureres via `input.encoding` i `velocity.properties` |
| Typisk filstørrelse | 1 KB - 200 KB |
| Variabelsyntaks | `$variable` eller `${variable}` - værdier løses fra et Java Velocity-kontekstobjekt ved kørsel |
| Direktiv-præfiks | `#` - indbyggede direktiver: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Inkludering af skabelon | `#parse` indlejrer og evaluerer en anden `.vm`-fil; `#include` indsætter den som rå ubehandlet tekst |
| Almindelige anvendelsesscenarier | Java-webapplikationsvisninger, kodegeneratorer, e-mail-skabeloner, Apache Maven-projektarketyper |
| Konflikt med filendelse | `.vm` bruges også af VMware til virtuelle maskiners hukommelses- og konfigurationsfiler - urelateret og mere udbredt |
| Bemærkelsesværdige alternativer | Apache FreeMarker (.ftl), Thymeleaf (.html skabeloner), Mustache (.mustache) |
| Output-formater | Ethvert tekstbaseret format: HTML, XML, SQL, almindelig tekst eller kildekode - Velocity er uafhængig af output-formatet |
| Udgivet | 1999 (Velocity originally from Apache Jakarta project) |
| Seneste version | Apache Velocity Engine 2.4 (2023) |
| Åben standard | Ja · royaltyfri |
| Specifikation | velocity.apache.org |
VM-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om VM-filer.