Che cos'è il formato di file VM?
I file .vm contengono modelli Apache Velocity - modelli di testo lato server scritti nel linguaggio Velocity Template Language (VTL). Velocity è un motore di templating basato su Java gestito dalla Apache Software Foundation; .vm è l'estensione predefinita dei suoi file modello.
Un modello Velocity mescola contenuti di output statici (HTML, XML, SQL o testo semplice) con direttive VTL e riferimenti a variabili risolti a runtime rispetto a un oggetto contesto Java. I costrutti VTL principali includono:
$variableo${variable}- emette un valore dal contesto,#set( $x = 'value' )- assegna una variabile,#if/#else/#end- blocchi di output condizionali,#foreach( $item in $list )- iterazione,#macro- definisce frammenti di modello riutilizzabili,#parse/#include- incorpora altri file.vm.
Velocity è utilizzato in applicazioni web Java legacy, generatori di codice, sistemi di modelli per email e archetipi Apache Maven. Il motore richiede Java 8 o versioni successive (Velocity 2.x); l'ultima versione 1.x è stata Velocity 1.7 nel 2010.
Nota: l'estensione .vm è utilizzata anche da VMware per i file di configurazione e memoria delle macchine virtuali - un uso completamente non correlato e più comunemente riscontrato. Quando un file .vm viene trovato su un sistema con VMware installato, appartiene quasi certamente a VMware, non a Velocity.
Alternative moderne a Velocity includono FreeMarker (Apache), Thymeleaf e Mustache.
Sicurezza e incolumità
RISCHIO: LOWFile di testo semplice; non eseguibile da solo. In un'applicazione Java, i modelli Velocity possono chiamare metodi Java arbitrari disponibili nel contesto, quindi i file .vm dannosi in un'applicazione server potrebbero causare iniezioni lato server se input non attendibili raggiungono il motore. Nessun rischio per gli utenti finali che lo aprono in un editor di testo.
Dettagli del formato
in sintesi- Configurazione Macchina Virtuale VMware - VMware Workstation e VMware Player utilizzano .vm come una delle diverse estensioni dei componenti della macchina virtuale; non correlato al templating.
- Salvataggio ScummVM - L'emulatore di giochi d'avventura ScummVM utilizza .vm per i file di salvataggio in alcuni motori di gioco.
Programmi che aprono file VM
Dettagli tecnici
specifiche approfondite| Sviluppatore | Apache Software Foundation |
| Requisito di runtime | Java 8 o versioni successive (Velocity Engine 2.x); l'ultima versione 1.x è stata Velocity 1.7 nel 2010 |
| Tipo di file | Modello Velocity Template Language (VTL) lato server in testo semplice |
| Codifica | UTF-8 per impostazione predefinita; configurabile tramite `input.encoding` in `velocity.properties` |
| Dimensione tipica del file | 1 KB - 200 KB |
| Sintassi delle variabili | `$variable` o `${variable}` - valori risolti da un oggetto contesto Java Velocity a runtime |
| Prefisso direttiva | `#` - direttive integrate: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Inclusione di modelli | `#parse` incorpora e valuta un altro file `.vm`; `#include` lo inserisce come testo grezzo non elaborato |
| Casi d'uso comuni | Viste di applicazioni web Java, generatori di codice, modelli di email, archetipi di progetti Apache Maven |
| Conflitto di estensione | `.vm` è utilizzato anche da VMware per i file di memoria e configurazione delle macchine virtuali - non correlato e più diffuso |
| Alternative degne di nota | Apache FreeMarker (.ftl), Thymeleaf (modelli .html), Mustache (.mustache) |
| Formati di output | Qualsiasi formato basato su testo: HTML, XML, SQL, testo semplice o codice sorgente - Velocity è indipendente dal formato di output |
| Rilasciato | 1999 (Velocity originally from Apache Jakarta project) |
| Ultima versione | Apache Velocity Engine 2.4 (2023) |
| Standard aperto | Sì · royalty-free |
| Specifica | velocity.apache.org |
Conversioni VM
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file VM.