Instrucciones de compilación
Este documento describe cómo compilar Universal Media Server a partir de los archivos fuente.
Nota importante: Los lanzamientos de precompilaciones de Universal Media Server se pueden descargar desde: http://www.universalmediaserver.com/ por lo que NO necesita ejecutar estos pasos como usuario general.
Se requieren los siguientes paquetes de software:
- Java JDK 17 (el JRE no es suficiente)
- Git
- Maven
- MediaInfo
Lea la sección Instrucciones completas para obtener una explicación completa de cómo instalar todo el software necesario y cómo compilar UMS para cada sistema operativo.
Instrucciones cortas
Si se han instalado todos los paquetes de software requeridos, los siguientes comandos descargarán el código fuente más reciente y la compilación UMS:
git clone https://github.com/UniversalMediaServer/UniversalMediaServer.git
cd universalmediaserver
mvn package -P PACKAGENAME
Donde PACKAGENAME es el nombre del sistema operativo objetivo: windows, macos, macos-arm, macos-pre1015 o linux-*, donde * es la arquitectura; una de: x86, x86_64, arm64, armel o armhf.
El resultado se compilará en el directorio "target":
- Windows:
UMS-setup.exe - Linux:
UMS-linux-generic-x.xx.x.tar.gz - macOS:
UMS-setup-macosx-x.xx.x.tar.gz
Instrucciones completas
Primero se debe instalar todo el software requerido:
1. Descargar e instala Java JDK 17.
Consulte https://bell-sw.com/pages/downloads/#/java-17-lts
2. Descargar e instala Git
Consulte https://git-scm.com/
3. Descargar y extraer Maven
Consulte http://maven.apache.org/
4. Establecer variables de entorno
Windows
Crea nuevas variables o agrega el valor si la variable ya existe:
- Nivel: Sistema, variable:
JAVA_HOME, valor: JDK install location - Nivel: Usuario, variable:
M2_HOME, valor: Maven extract location - Nivel: Usuario, variable:
M2, valor:%M2_HOME%\bin - Nivel: Usuario, variable:
PATH, valor%M2%
Linux
No hacer nada.
macOS
No hacer nada.
5. Descarga el código fuente UMS
git clone https://github.com/UniversalMediaServer/UniversalMediaServer.git
cd universalmediaserver
6. Actualizar a la última versión (opcional)
git pull
7. Compilar la última versión de UMS
mvn package -P PACKAGENAME
Donde PACKAGENAME es el nombre del sistema operativo objetivo: windows, macos, macos-arm, macos-pre1015 o linux-*, donde * es la arquitectura; una de: x86, x86_64, arm64, armel, o armhf
También puedes especificar una bandera opcional si quieres omitir la descarga de binarios, lo que puede ser útil para acelerar el tiempo de compilación, particularmente en Windows y Linux:
mvn package -P PACKAGENAME -Doffline=true
Los binarios resultantes se compilarán en el directorio "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
Compilaciones automáticas
Estos dos últimos comandos se pueden automatizar fácilmente usando un script p. ej.:
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
Empaquetado y compilación cruzada
Esta sección explica cómo es posible compilar y empaquetar para un sistema mientras se está en otro.
Compilación de binarios de Windows
Los instaladores de Windows (UMS-setup.exe) y el ejecutable de Windows (UMS.exe) se pueden compilar en plataformas que no sean Windows.
Primero que todo, necesitarás tener instalado el binario makensis. En Debian/Ubuntu, esto se puede hacer con:
sudo apt-get install nsis
Después es necesario establecer la ruta absoluta del entorno NSISDIR con el directorio nsis. Esto se puede establecer por comando:
NSISDIR=$PWD/src/main/external-resources/third-party/nsis mvn ...
O también:
- Temporalmente en el shell actual:
export NSISDIR=$PWD/src/main/external-resources/third-party/nsismvn ...
- O permanentemente:
# estos dos comandos solo deben ejecutarse una vezecho "export NSISDIR=$PWD/src/main/external-resources/third-party/nsis" >> ~/.bashrcsource ~/.bashrcmvn...
En beneficio de la brevedad, los siguientes ejemplos asumen que ya se ha establecido.
Ahora se puede compilar el instalador de Windows con uno de los siguientes comandos:
En Linux y macOS
mvn package -P system-makensis,windows
Compilando un paquete tar de Linux
En Windows y macOS
mvn package -P linux-*
donde * es uno de: x86, x86_64, arm64, armel o armhf
Compilando la imagen de disco de macOS
En Windows y Linux
mvn package -P macos
hdiutil create -volname "Universal Media Server" -srcfolder target/ums-*-distribution UMS.dmg
Compilando el instalador del asistente de macOS
- Compilar UMS
- Instalar http://s.sudre.free.fr/Software/Packages/about.html
- Establezca una variable que almacene la ruta del directorio del archivo de distribución de compilación, p. ej.:
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"
- Reemplace la ruta deseada dentro del archivo .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
- Compilar instalador .pkg. Esto se generará en
/target/Universal Media Server.pkg.
/usr/local/bin/packagesbuild src/main/assembly/osx-installer.pkgproj
Compilaciones rápidas
Disponemos de scripts de compilación rápidos que se recomiendan durante el desarrollo para una iteración rápida. Los scripts compilarán el código Java, lo colocarán en el directorio de instalación predeterminado, y ejecutarán el programa, lo que cerrará cualquier instancia existente de UMS.
Debería funcionar en Windows y macOS de 64 bits. Se puede extender fácilmente para incluir otros si se desea.
mvn verify -P quickrun-* -DskipTests
Donde * es macOS o windows