Co to jest format pliku VM?
Pliki .vm zawierają szablony Apache Velocity - szablony tekstowe po stronie serwera napisane w języku Velocity Template Language (VTL). Velocity to silnik szablonów oparty na języku Java, utrzymywany przez Apache Software Foundation; .vm jest jego domyślnym rozszerzeniem pliku szablonu.
Szablon Velocity miesza statyczną treść wyjściową (HTML, XML, SQL lub zwykły tekst) z dyrektywami VTL i odniesieniami do zmiennych, które są rozwiązywane w czasie wykonywania względem obiektu kontekstu Java. Podstawowe konstrukcje VTL obejmują:
$variablelub${variable}- wypisuje wartość z kontekstu,#set( $x = 'value' )- przypisuje zmienną,#if/#else/#end- bloki wyjściowe warunkowe,#foreach( $item in $list )- iteracja,#macro- definiowanie fragmentów szablonów wielokrotnego użytku,#parse/#include- osadzanie innych plików.vm.
Velocity jest używany w starszych aplikacjach internetowych Java, generatorach kodu, systemach szablonów e-mail oraz archetypach Apache Maven. Silnik wymaga środowiska Java 8 lub nowszego (Velocity 2.x); ostatnim wydaniem z linii 1.x był Velocity 1.7 w 2010 roku.
Uwaga: rozszerzenie .vm jest również używane przez VMware dla plików pamięci i konfiguracji maszyn wirtualnych - jest to całkowicie niepowiązane i częściej spotykane zastosowanie. Gdy plik .vm zostanie znaleziony w systemie z zainstalowanym VMware, prawie na pewno należy on do VMware, a nie do Velocity.
Nowoczesne alternatywy dla Velocity to FreeMarker (Apache), Thymeleaf oraz Mustache.
Bezpieczeństwo
RYZYKO: LOWPlik tekstowy; nie jest wykonywalny sam w sobie. W aplikacji Java szablony Velocity mogą wywoływać dowolne metody Java dostępne w kontekście, więc złośliwe pliki .vm w aplikacji serwerowej mogą spowodować wstrzyknięcie po stronie serwera (server-side injection), jeśli niezaufane dane trafią do silnika. Brak ryzyka dla użytkowników końcowych otwierających plik w edytorze tekstu.
Szczegóły formatu
w pigułce- VMware Virtual Machine Configuration - VMware Workstation i VMware Player używają .vm jako jednego z kilku rozszerzeń plików komponentów maszyny wirtualnej; niepowiązane z szablonami.
- ScummVM Save Game - Emulator gier przygodowych ScummVM używa .vm dla plików stanów zapisu w niektórych silnikach gier.
Programy otwierające pliki VM
Szczegóły techniczne
specyfikacja| Deweloper | Apache Software Foundation |
| Wymagania środowiska uruchomieniowego | Java 8 lub nowsza (Velocity Engine 2.x); ostatnie wydanie 1.x to Velocity 1.7 w 2010 r. |
| Typ pliku | Plik tekstowy szablonu Velocity Template Language (VTL) po stronie serwera |
| Kodowanie | Domyślnie UTF-8; konfigurowalne przez `input.encoding` w `velocity.properties` |
| Typowy rozmiar pliku | 1 KB - 200 KB |
| Składnia zmiennych | `$variable` lub `${variable}` - wartości pobierane z obiektu kontekstu Java Velocity w czasie wykonywania |
| Prefiks dyrektywy | `#` - wbudowane dyrektywy: `#set`, `#if`/`#else`/`#end`, `#foreach`, `#macro`, `#parse`, `#include` |
| Dołączanie szablonów | `#parse` osadza i przetwarza inny plik `.vm`; `#include` wstawia go jako surowy, nieprzetworzony tekst |
| Typowe przypadki użycia | Widoki aplikacji internetowych Java, generatory kodu, szablony e-mail, archetypy projektów Apache Maven |
| Konflikt rozszerzeń | `.vm` jest również używane przez VMware dla plików pamięci i konfiguracji maszyn wirtualnych - niepowiązane i bardziej powszechne |
| Znane alternatywy | Apache FreeMarker (.ftl), Thymeleaf (szablony .html), Mustache (.mustache) |
| Formaty wyjściowe | Dowolny format tekstowy: HTML, XML, SQL, zwykły tekst lub kod źródłowy - Velocity jest niezależny od formatu wyjściowego |
| Wydano | 1999 (Velocity originally from Apache Jakarta project) |
| Najnowsza wersja | Apache Velocity Engine 2.4 (2023) |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | velocity.apache.org |
Konwersje VM
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki VM.