O que é o formato de ficheiro VM?
Arquivos .vm contêm modelos do Apache Velocity - modelos de texto do lado do servidor escritos na Velocity Template Language (VTL). O Velocity é um mecanismo de modelagem baseado em Java mantido pela Apache Software Foundation; .vm é sua extensão de arquivo de modelo padrão.
Um modelo Velocity mistura conteúdo de saída estático (HTML, XML, SQL ou texto simples) com diretivas VTL e referências de variáveis resolvidas em tempo de execução contra um objeto de contexto Java. As construções principais da VTL incluem:
$variableou${variable}- exibe um valor do contexto,#set( $x = 'value' )- atribui uma variável,#if/#else/#end- blocos de saída condicional,#foreach( $item in $list )- iteração,#macro- define fragmentos de modelo reutilizáveis,#parse/#include- incorpora outros arquivos.vm.
O Velocity é usado em aplicações web Java legadas, geradores de código, sistemas de modelos de e-mail e arquétipos do Apache Maven. O mecanismo requer Java 8 ou posterior (Velocity 2.x); a última versão 1.x foi o Velocity 1.7 em 2010.
Nota: a extensão .vm também é usada pela VMware para arquivos de memória e configuração de máquinas virtuais - um uso completamente não relacionado e encontrado com mais frequência. Quando um arquivo .vm é encontrado em um sistema com VMware instalado, ele quase certamente pertence ao VMware, não ao Velocity.
Alternativas modernas ao Velocity incluem FreeMarker (Apache), Thymeleaf e Mustache.
Segurança e proteção
RISCO: LOWArquivo de texto simples; não executável por conta própria. Em uma aplicação Java, os modelos Velocity podem chamar métodos Java arbitrários disponíveis no contexto, portanto, arquivos .vm maliciosos em uma aplicação de servidor podem causar injeção no lado do servidor se entradas não confiáveis atingirem o mecanismo. Não é um risco para usuários finais que abrem em um editor de texto.
Detalhes do formato
em resumo- VMware Virtual Machine Configuration - VMware Workstation e VMware Player usam .vm como uma das várias extensões de arquivo de componente de máquina virtual; não relacionado a modelos.
- ScummVM Save Game - O emulador de jogos de aventura ScummVM usa .vm para arquivos de estado salvo em alguns mecanismos de jogo.
Programas que abrem arquivos VM
Detalhes técnicos
especificação profunda| Desenvolvedor | Apache Software Foundation |
| Requisito de tempo de execução | Java 8 ou posterior (Velocity Engine 2.x); a última versão 1.x foi o Velocity 1.7 em 2010 |
| Tipo de arquivo | Modelo de Velocity Template Language (VTL) de texto simples do lado do servidor |
| Codificação | UTF-8 por padrão; configurável via `input.encoding` em `velocity.properties` |
| Tamanho típico do arquivo | 1 KB - 200 KB |
| Sintaxe de variável | `$variable` ou `${variable}` - valores resolvidos a partir de um objeto de contexto Java Velocity em tempo de execução |
| Prefixo de diretiva | `#` - diretivas integradas: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Inclusão de modelo | `#parse` incorpora e avalia outro arquivo `.vm`; `#include` o insere como texto bruto não processado |
| Casos de uso comuns | Visualizações de aplicações web Java, geradores de código, modelos de e-mail, arquétipos de projeto Apache Maven |
| Conflito de extensão | `.vm` também é usado pela VMware para arquivos de memória e configuração de máquinas virtuais - não relacionado e mais prevalente |
| Alternativas notáveis | Apache FreeMarker (.ftl), Thymeleaf (modelos .html), Mustache (.mustache) |
| Formatos de saída | Qualquer formato baseado em texto: HTML, XML, SQL, texto simples ou código-fonte - o Velocity é agnóstico quanto ao formato de saída |
| Lançado | 1999 (Velocity originally from Apache Jakarta project) |
| Versão mais recente | Apache Velocity Engine 2.4 (2023) |
| Padrão aberto | Sim · livre de royalties |
| Especificação | velocity.apache.org |
Conversões de VM
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos VM.