¿Es posible construir un proyecto java solo una vez usando eclipse y compartir?

¿Es posible construir un proyecto maven que contenga código java para ser construido una vez y los binarios pueden ser compartidos?

Problema: el proyecto que estoy tratando de construir me tomará entre 3 y 4 horas y requiere un gran ancho de banda de Internet. Estoy tratando de verificar la posibilidad de volver a usar este proyecto construido entre varias otras máquinas.

He trabajado con proyectos de c ++ que implican makefiles anteriormente y esto fue bastante más simple. Soy nuevo en Java / eclipse y necesitaría ayuda para descubrir si esto es algo realmente posible.

PD: Intenté encontrar soluciones existentes; ellos no fueron staright hacia adelante o dicen que esto no se puede hacer

Comstack una vez y compártela fuera de línea

En Maven, puedes construir tu proyecto solo una vez y obtener un archivo JAR completamente empaquetado con todas las dependencias. Entonces, puedes compartir este JAR con otras máquinas fuera de línea.

A continuación se muestran los pasos para hacerlo.

  1. Primero actualice su pom.xml con la configuración siguiente
   maven-assembly-plugin    com.thanga.MyTest[REPLACE WITH YOUR MAIN CLASS]    jar-with-dependencies      

  1. Empaquete su proyecto con el package assembly:single del objective package assembly:single como se muestra a continuación

En consola,

  mvn package assembly:single 

En eclipse,

enter image description here


  1. Ejecuta esto y puedes obtener los dos archivos JAR. Uno de ellos MyFullPack-0.0.1-SNAPSHOT-jar-with-dependencies.jar tiene cargadas las dependencias completas.

enter image description here


  1. Puede abrir el JAR para ver las dependencias empaquetadas como se muestra a continuación.

enter image description here


  1. Puede compartir este JAR con otras máquinas fuera de línea sin más comstackción

¿Es posible construir un proyecto maven que contenga código java para ser construido una vez y los binarios pueden ser compartidos?

Sí, ese es el objective de Maven, construyes el proyecto una vez, generando así un artefacto (tu jar / war …) que se almacena en tu repository Maven local.

El siguiente comando crea el proyecto y lo guarda en el repository local:

 mvn clean install 

Sin embargo, si haces esto, solo tienes el artefacto en tu repository local.

Una buena práctica es crear un repository y almacenar sus artefactos allí: https://maven.apache.org/repository-management.html

El uso del siguiente comando almacenaría la dependencia de la instantánea en el repository:

 mvn clean deploy 

A continuación, puede reutilizar sus componentes a través de múltiples computadoras especificando las dependencies en el archivo pom.xml de su nuevo proyecto.

Es posible que desee echar un vistazo a esta guía:

http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Obviamente, necesitaría configurar el repository y su proyecto experto para utilizar una configuración de este tipo.

Lo primero es lo primero. ¿Es su proyecto una aplicación web (guerra) o una aplicación empresarial (oreja) o simplemente un tarro independiente?

puede usar la etiqueta de empaquetado en POM.xml para empaquetar su aplicación en un JAR, WAR, EAR

Ejemplos:

 war ear jar 

Luego ejecute mvn clean install

En project / src / target debería ver el jar, war u ear generado que puede usar para desplegar en su máquina o en cualquier otra máquina.

O

también puede encontrarlo en la carpeta .m2 una vez que haya ejecutado la instalación.

Si usa maven, una mvn install su binario en su carpeta $ {home} /. M2. Esos binarios estarán disponibles para todos los demás trabajos maven que se ejecutarán en la misma máquina.

Si necesita compartir su binario entre máquinas múltiples, puede implementar sus archivos jar en un repository, como nexus o artifactory.

Simplemente puede tomar el archivo jar de su carpeta de destino y copiarlo a las otras máquinas; de lo contrario, podría usar algún repository compartido como nexus oder artifactory para compartir su binario construido. Maven es capaz de desplegar artefactos automáticamente en esos repositorys