Инструкции по сборке
В этом документе описано, как собрать Universal Media Server из исходных файлов.
Важное примечание: Готовые сборки Universal Media Server можно загрузить с: http://www.universalmediaserver.com/ — обычным пользователям НЕ нужно выполнять эти шаги.
Для сборки необходимы следующие пакеты ПО:
- Java JDK 17 (JRE недостаточно)
- Git
- Maven
- MediaInfo
Краткая инструкция
Если все необходимые пакеты установлены, следующие команды загрузят последние версии исходных файлов и соберут UMS:
git clone https://github.com/UniversalMediaServer/UniversalMediaServer.git
cd universalmediaserver
mvn package -P PACKAGENAME
Где PACKAGENAME — это название целевой ОС: windows, macos, macos-arm, macos-pre1015 или linux-*, где * — это архитектура; одна из: x86, x86_64, arm64, armel или armhf
Результат сборки будет находиться в каталоге target:
- Windows:
UMS-setup.exe - Linux:
UMS-linux-generic-x.xx.x.tar.gz - macOS:
UMS-setup-macosx-x.xx.x.tar.gz
Полная инструкция
Сначала необходимо установить всё необходимое ПО:
1. Скачайте и установите Java JDK 17
См. https://bell-sw.com/pages/downloads/#/java-17-lts
2. Скачать и установить Git
3. Скачать и распаковать Maven
4. Настройте переменные среды
Windows
Создайте новые переменные или добавьте значение, если переменная уже существует:
- Уровень: Системный, переменная:
JAVA_HOME, значение: путь к установке JDK - Уровень: Пользователь, переменная:
M2_HOME, значение: путь к распакованной папке Maven - Уровень: Пользователь, переменная:
M2, значение:%M2_HOME%\bin - Уровень: Пользователь, переменная:
PATH, значение:%M2%
Linux
Ничего делать не нужно.
macOS
Ничего делать не нужно.
5. Скачать исходный код UMS
git clone https://github.com/UniversalMediaServer/UniversalMediaServer.git
cd universalmediaserver
6. Обновите до последней версии исходного кода (необязательно)
git pull
7. Скомпилировать последнюю версию UMS
mvn package -P PACKAGENAME
Где PACKAGENAME — это имя целевой ОС: windows, macos, macos-arm, macos-pre1015 или linux-*, где * — архитектура; одна из: x86, x86_64, arm64, armel или armhf.
Вы также можете указать необязательный флаг, если хотите пропустить загрузку бинарных файлов — это может ускорить сборку, особенно на Windows и Linux:
mvn package -P PACKAGENAME -Doffline=true
Собранные бинарные файлы будут находиться в каталоге target:
- Windows:
UMS-setup.exe - Linux:
UMS-linux-generic-x.xx.x.tar.gz - macOS:
ums-x.xx.x-SNAPSHOT-distribution/Universal Media Server.app
Автоматические сборки
Эти последние две команды легко автоматизировать с помощью скрипта, например:
Windows
rem build-UMS.bat
start /D universalmediaserver /wait /b git pull
start /D universalmediaserver /wait /b mvn package
Linux, macOS &c.
#!/bin/sh
# build-UMS.sh
cd universalmediaserver
git pull
mvn package
Упаковка и кросскомпиляция
В этом разделе объясняется, как можно выполнить компиляцию и упаковку для одной системы, находясь в другой.
Сборка бинарных файлов для Windows
Установщики Windows (UMS-setup.exe) и исполняемый файл Windows (UMS.exe) могут быть собраны на платформах, отличных от Windows.
Прежде всего, вам необходимо установить бинарный файл makensis. В Debian/Ubuntu это можно сделать с помощью:
sudo apt-get install nsis
Затем необходимо задать переменную окружения NSISDIR, указав в качестве значения абсолютный путь к каталогу nsis. Это можно задать как для отдельной команды:
NSISDIR=$PWD/src/main/external-resources/third-party/nsis mvn ...
Или:
- Временно в текущей оболочке:
export NSISDIR=$PWD/src/main/external-resources/third-party/nsismvn ...
- Или навсегда:
# these two commands only need to be run onceecho "export NSISDIR=$PWD/src/main/external-resources/third-party/nsis" >> ~/.bashrcsource ~/.bashrcmvn...
Для краткости в следующих примерах предполагается, что она уже задана.
Теперь установщик Windows можно собрать с помощью одной из следующих команд:
На Linux и macOS
mvn package -P system-makensis,windows
Создание архива Linux
На Windows и macOS
mvn package -P linux-*
где * — одно из значений: x86, x86_64, arm64, armel или armhf.
Сборка образа диска для macOS
На Windows и Linux
mvn package -P macos
hdiutil create -volname "Universal Media Server" -srcfolder target/ums-*-distribution UMS.dmg
Сборка установщика-мастера для macOS
- Сборка UMS
- Установить http://s.sudre.free.fr/Software/Packages/about.html
- Задайте переменную, хранящую путь к каталогу с файлом дистрибутива сборки, например:
export UMS_DIST_FOLDER="/Users/dev/ums/target/ums-7.3.1-SNAPSHOT-distribution/Universal Media Server.app"
export UMS_LOGO_FILE="/Users/dev/ums/src/main/external-resources/third-party/nsis/Contrib/Graphics/Wizard/win.png"
- Замените нужный путь внутри файла .pkgproj
sed -i '' "s#UMS_DIST_FOLDER#$UMS_DIST_FOLDER#g" src/main/assembly/osx-installer.pkgproj
sed -i '' "s#UMS_LOGO_FILE#$UMS_LOGO_FILE#g" src/main/assembly/osx-installer.pkgproj
- Соберите .pkg установщик. Результат будет помещён в
/target/Universal Media Server.pkg
/usr/local/bin/packagesbuild src/main/assembly/osx-installer.pkgproj
Быстрые сборки
У нас есть скрипты для быстрой сборки, которые рекомендуются для быстрого цикла разработки. Скрипты скомпилируют Java-код, поместят его в каталог установки по умолчанию и запустят программу, предварительно закрыв все запущенные экземпляры UMS.
Должно работать для 64-разрядных версий Windows и macOS. При желании можно легко расширить для других систем.
mvn verify -P quickrun-* -DskipTests
Где * — это macos или windows