Что такое формат файла VM?
Файлы .vm содержат шаблоны Apache Velocity - текстовые шаблоны на стороне сервера, написанные на языке Velocity Template Language (VTL). Velocity - это Java-движок шаблонизации, поддерживаемый Apache Software Foundation; .vm является расширением файла шаблона по умолчанию.
Шаблон Velocity смешивает статический выходной контент (HTML, XML, SQL или обычный текст) с директивами VTL и ссылками на переменные, которые разрешаются во время выполнения относительно объекта контекста Java. Основные конструкции VTL включают:
$variableили${variable}- вывод значения из контекста,#set( $x = 'value' )- присваивание переменной,#if/#else/#end- блоки условного вывода,#foreach( $item in $list )- итерация,#macro- определение многоразовых фрагментов шаблона,#parse/#include- вставка других файлов.vm.
Velocity используется в устаревших веб-приложениях Java, генераторах кода, системах шаблонов электронной почты и архетипах Apache Maven. Движку требуется Java 8 или новее (Velocity 2.x); последним релизом ветки 1.x был Velocity 1.7 в 2010 году.
Примечание: расширение .vm также используется VMware для файлов памяти и конфигурации виртуальных машин - это совершенно не связанная и более часто встречающаяся область применения. Если файл .vm найден в системе с установленным ПО VMware, он почти наверняка относится к VMware, а не к Velocity.
Современные альтернативы Velocity включают FreeMarker (Apache), Thymeleaf и Mustache.
Безопасность и защита
РИСК: LOWПростой текстовый файл; сам по себе не является исполняемым. В Java-приложении шаблоны Velocity могут вызывать произвольные методы Java, доступные в контексте, поэтому вредоносные файлы .vm в серверном приложении могут вызвать серверную инъекцию, если в движок попадают недоверенные данные. Не представляет риска для конечных пользователей при открытии в текстовом редакторе.
Детали формата
в двух словах- Конфигурация виртуальной машины VMware - VMware Workstation и VMware Player используют .vm как одно из нескольких расширений компонентов виртуальной машины; не связано с шаблонами.
- Сохранение игры ScummVM - Эмулятор приключенческих игр ScummVM использует .vm для файлов состояния сохранения в некоторых игровых движках.
Программы, открывающие файлы VM
Технические подробности
глубокая спецификация| Разработчик | Apache Software Foundation |
| Требования к среде выполнения | Java 8 или новее (Velocity Engine 2.x); последним релизом 1.x был Velocity 1.7 в 2010 году |
| Тип файла | Текстовый шаблон на языке Velocity Template Language (VTL) на стороне сервера |
| Кодировка | UTF-8 по умолчанию; настраивается через `input.encoding` в `velocity.properties` |
| Типичный размер файла | 1 КБ - 200 КБ |
| Синтаксис переменных | `$variable` или `${variable}` - значения извлекаются из объекта контекста Java Velocity во время выполнения |
| Префикс директив | `#` - встроенные директивы: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Включение шаблонов | `#parse` вставляет и обрабатывает другой файл `.vm`; `#include` вставляет его как необработанный текст |
| Общие случаи использования | Представления веб-приложений Java, генераторы кода, шаблоны писем, архетипы проектов Apache Maven |
| Конфликт расширений | `.vm` также используется VMware для файлов памяти и конфигурации виртуальных машин - не связано и встречается чаще |
| Известные альтернативы | Apache FreeMarker (.ftl), Thymeleaf (.html шаблоны), Mustache (.mustache) |
| Форматы вывода | Любой текстовый формат: HTML, XML, SQL, обычный текст или исходный код - Velocity не зависит от формата вывода |
| Выпущен | 1999 (Velocity originally from Apache Jakarta project) |
| Последняя версия | Apache Velocity Engine 2.4 (2023) |
| Открыть стандартное | Да · без роялти |
| Спецификация | velocity.apache.org |
Конвертации VM
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах VM.