tutorial proyecto para instalar example español con como java maven build offline offline-mode

java - proyecto - ¿Podría la primera construcción de maven hacerse fuera de línea?



netbeans maven install (3)

El problema: tienes una distribución de proyecto java comprimido, que depende de varias bibliotecas como spring-core, spring-context, jacskon, testng y slf4j. La tarea es hacer que la cosa sea editable fuera de línea. Está bien crear un repositorio local de alcance de proyecto con todos los archivos jar de biblioteca requeridos.

He intentado hacer eso. Parece que aunque el proyecto contenga las jarras que requiere para javac y runtime, la construcción aún requerirá acceso a internet. Maven todavía acechará en la red para buscar la mayoría de sus propios complementos que requiere para la compilación. Supongo que maven se ejecuta con el directorio .m2 vacío (ya que este puede ser el primer lanzamiento de la compilación, que puede ser una compilación sin conexión). No, no estoy de acuerdo con la distribución de una instantánea completa de maven repo a lo largo del proyecto en sí, ya que esto parece un completo desastre para mí.

Un poco de respaldo: la tarea más amplia es crear la distribución de ideas JDK / IntelliJ Idea estilo portátil de Windows, que acompaña el proyecto y permite una mínima codificación java / ejecución dentro de IDE con una configuración mínima y acceso mínimo a Internet. El proyecto está dirigido a estudiantes en una clase de computadora, con poco o ningún control sobre la configuración del sistema. Es deseable mantener el sistema de compilación de la consola intacto para el modo fuera de línea, pero supongo que maven depende demasiado de la red, así que tengo que dejarlo a favor de la buena hormiga.

Entonces, ¿cuál es su opinión, podríamos mover primero la construcción de maven en modo fuera de línea por completo? Mi intuición es que la distribución inicial de maven solo contiene el mínimo necesario para sacar plugins esenciales del repositorio principal y no es completamente funcional sin ver el repositorio principal al menos una vez.


Maven tiene un interruptor ''-o'' que le permite construir fuera de línea:

-o,--offline Work offline

Por supuesto, necesitará tener sus dependencias ya almacenadas en la $HOME/.m2/repository caché en su $HOME/.m2/repository para que esto se $HOME/.m2/repository sin errores. Puede cargar las dependencias con:

mvn dependency:go-offline

Intenté este proceso y parece que no funciona del todo. Hice un:

rm -rf $HOME/.m2/repository mvn dependency:go-offline # lot of stuff downloaded # unplugged my network # develop stuff mvn install # errors from missing plugins

Lo que funcionó sin embargo es:

rm -rf $HOME/.m2/repository mvn install # while still online # unplugged my network # develop stuff mvn install


Podría ejecutar la dependencia de maven : go-offline en un nuevo repositorio .m2 para el proyecto en cuestión. Esto debería descargar todo lo que maven necesita para poder ejecutar fuera de línea. Si estos se ponen en un repositorio local del alcance del proyecto, usted debería poder lograr lo que desea. No lo he intentado sin embargo


Especifique una ubicación de repositorio local , dentro del archivo settings.xml con <localRepository>...</localRepository> o ejecutando mvn con -Dmaven.repo.local=... parameter. Después de la creación inicial del proyecto, todos los artefactos necesarios deben almacenarse en caché localmente, y puede hacer referencia a esta ubicación del repositorio de la misma manera, mientras ejecuta otras compilaciones Maven en modo fuera de línea ( mvn -o ... ).