2010-07-18 12 views
8

¿Cuáles son las mejores prácticas (y herramientas de habilitación) para implementar aplicaciones independientes de Java junto con cualquier dependencia de jar necesaria, archivos de configuración y scripts de inicio?Implementación de archivos Java

¿Hay algún complemento de Maven que facilite la publicación de versiones binarias, para que los usuarios no necesiten utilizar maven, por ejemplo?

Respuesta

3

En cuanto a la dependencia, solo uso maven dependency copy plugin y copio todas las dependencias en una carpeta ./lib, y proporciono un script de inicio que usa el class path wildcard (de esa manera puede cambiar sus dependencias todo lo que quiera y no tenga para cambiar el script de inicio). En cuanto a los archivos de configuración, los puse en una carpeta ./config y los incluyo de nuevo en el classpath de mi aplicación en el script de inicio (el primero admite que solo funciona para> java 1.6).

Así que al final casi todo mi aplicación tiene la siguiente estructura:

mystuff.jar launch.sh 
./lib 
./config 

A continuación, voy a cerrar la cremallera de todo el asunto y darle a mis usuarios. Probablemente todo el proceso sea fácil de automatizar usando maven, pero confieso que lo hago a mano: p

Si lo prefiere y las licencias lo permiten, también puede agrupar todas las dependencias en un único contenedor (con dependencias expandidas dentro) usando el assembly plugin. Esto tiende a hacer que el tarro sea voluminoso y brindando a los usuarios una aplicación actualizada. más difícil. También tuve problemas varias veces debido a que se sobrescribieron los archivos de clase o algo así, por lo que personalmente me apego a la carpeta ./lib.

6

¿Hay algún plugin de Maven que facilite la publicación de versiones binarias, para que los usuarios no necesiten usar maven, por ejemplo?

Utilice Maven Assembly Plugin para crear una distribución binaria como zip/tar.gz/tar.bz2 de su proyecto. Este complemento es extremadamente flexible, al precio de cierta complejidad, y puede hacer casi cualquier cosa que desee. Luego deploy (en el sentido maven) el artefacto producido, cárguelo en alguna parte, etc.

1

Hay launch4j, que, si puede hacer que funcione, combinará una aplicación Java en un ejecutable para su plataforma.

1

Si su destino de despliegue es compatible con archivos RPM, le sugiero que investigue el rpm-maven-plugin. Le permite mapear fácilmente los artefactos de su proyecto, incluidas las dependencias, a un paquete RPM.

Lo he estado usando con gran éxito para la implementación de aplicaciones de escala mediana.

0

Eche un vistazo a Appassembler Maven Plugin. También puede combinarlo con el Assembly Maven Plugin.

Utilice el complemento appassembler para generar un conjunto de "programas" especificando nombres ejecutables y clases principales. También puede tenerlo anteponer y crear un directorio de etc. en el que pueda agregar archivos de configuración.

Si generar el directorio con los scripts de inicio y el directorio de archivos binarios no es suficiente, puede usar el complemento de ensamblaje para copiar archivos adicionales (digamos sus archivos de configuración) en el directorio apropiado y/o aplicación en un archivo.

0

Puede utilizar hormigas o Maven secuencias de comandos de Oracle:

http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

Lo anterior no sólo compilar el código y crear archivos jar, pero también creará ejecutables (exe ventanas binario o archivo de la aplicación Mac) También puede crear instaladores nativos. Además, le permite incluir JVM con su distribución para que el uso final no necesite instalar Java.

Cuestiones relacionadas