Visión de conjunto
teoría
Si no está interesado, simplemente puede ignorarlo. Nexus3, la versión 3. * de nexus, tiene funciones muy poderosas y es compatible con muchos idiomas y tipos de almacenes. Tome el 3.29.2-02 instalado en este artículo como ejemplo, es compatible con: apt, bower, cocoapods, conan , conda, docker, gitlfs, go, helm, maven2, npm, nuget, p2, pypi, r, raw, rubygems, yum.
Roles y permisos de usuario
Tarea de programación de Nexus
Nexus proporciona una serie de tareas de programación configurables para facilitar a los usuarios la gestión del sistema. El usuario puede configurar la expresión cron para que se ejecuten estas tareas. La tarea programada se ejecutará en segundo plano cuando sea apropiado. Para crear una tarea programada, haga clic en "Tareas programadas" en el menú de navegación de la izquierda, luego haga clic en el botón Agregar en la interfaz de la derecha y complete el contenido relevante de acuerdo con las indicaciones de la página.
Nexus incluye los siguientes tipos de tareas de programación:
- Descargar índices: descargar índices remotos para el almacén de agentes
- Vaciar papelera: vacía la papelera de reciclaje de Nexus, algunas operaciones mueven archivos a la papelera de reciclaje
- Desalojar elementos proxy no utilizados de las memorias caché del repositorio: elimine las memorias caché de componentes no utilizadas durante mucho tiempo en el almacén proxy
- Caducar la caché del repositorio: Nexus mantiene la información del almacén remoto para el almacén proxy a fin de evitar el tráfico de red innecesario. Esta tarea borra esta información para obligar a Nexus a recuperar la información del almacén remoto.
- Publicar índices: publique índices de almacén en un formato que pueda ser utilizado por m2eclipse y otros Nexus.
- Purgar la línea de tiempo de Nexus: elimine el archivo de línea de tiempo de Nexus, que se utiliza para crear la fuente RSS del sistema
- Reconstruir archivos de metadatos de Maven: vuelva a crear los archivos de metadatos del almacén en función del contenido del almacén
maven-metadata.xml
y vuelva a crear la suma de comprobación md5 y sha1 de cada archivo - Repositorios ReIndex: compile índices para almacenes
- Eliminar instantáneas de repositorios: elimine los componentes de instantáneas del repositorio de forma configurable
- Synchronize Shadow Repository: sincroniza el contenido del almacén virtual (servicio basado en Maven1)
instalación
Descargue el archivo comprimido:
wget
desempaquetar:
tar -zxvf nexus-3.29.2-02-unix.tar.gz
En el directorio especificado:
mv nexus-3.29.2-02 /usr/local/nexus3
Configure su navegador para acceder a la IP y el número de puerto:
vim /usr/local/nexus3/etc/nexus-default.properties
se application-host=0.0.0.0
modificará application-host=<your_ip>
o utilizará el puerto predeterminado de 8081.
Cambie al directorio bin:
cd /usr/local/nexus3/bin/
puesta en marcha:
./nexus start
En este punto, debería poder abrir el navegador para acceder a la dirección que acaba de configurar:http://<ip>:8081
Si no funciona, generalmente el firewall no está apagado. Dado que es un servidor privado integrado en la intranet, puede apagar el firewall de manera segura:
systemctl stop firewalld
Configurar para que se inicie automáticamente después de arrancar:
systemctl enable nexus
Si se informa un error:
Unit nexus.service could not be found.
Luego cree una conexión a /etc/init.d:
ln -s /usr/local/nexus3/bin/nexus /etc/init.d/nexus
Configurar para arrancar:
systemctl enable nexus
Producción:
nexus.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable nexus
Demuestra éxito.
Interfaz de instalación exitosa:
Agregar el almacén de proxy de Alibaba Cloud
Como se muestra en la figura: Se
puede observar que existen tres tipos de almacenes:
- Alojado: almacén local, puede implementar sus propios componentes en este tipo de almacén. Por ejemplo, la biblioteca de segunda parte de la empresa;
- Proxy: almacén de proxy, utilizado para proxy de almacenes públicos remotos, como el almacén central de maven;
- Grupo: grupo de almacén, utilizado para fusionar varios almacenes alojados / proxy. Cuando el proyecto necesita hacer referencia a varios recursos del repositorio, solo necesita poner estos recursos en un grupo y hacer referencia a este grupo;
Tenga en cuenta que primero debe iniciar sesión:
Después de iniciar sesión, solo para configurar los permisos:
Agregar almacén:
debido a que el agente se agrega Ali almacenamiento en la nube, elija Tipo de proxy: se
deben configurar tres piezas de información:
la primera representa la unicidad del nombre , puede ingresar aliyun; el
primero es la dirección. Dado que es Alibaba Cloud, ingrese http://maven.aliyun.com/nexus/content/groups/public/; el
tercero es la ubicación de almacenamiento. Haga clic en el menú desplegable lista y seleccione predeterminado.
En este punto, el almacén proxy de Alibaba Cloud se ha agregado correctamente, pero no se recomienda usarlo directamente. El propósito de construir un servidor privado nexus no es solo copiar el jar del almacén maven de Alibaba Cloud en el almacén del servidor privado. en su propia intranet. Esto no mejora la velocidad de compilación.
por favor observe la siguiente parte.
Combinar settings.xml
El almacén de tipo alojado mencionado anteriormente, el escenario aplicable es principalmente que el Proyecto A necesita hacer referencia al archivo jar del Proyecto B y luego descargarlo del almacén del servidor privado nexus en la intranet.
Por lo tanto, también necesitamos agregar un almacén de tipo alojado, que es similar a los pasos de agregar un almacén proxy anteriores, excepto que este tipo de almacén solo necesita configurar dos parámetros, un nombre y una ubicación de almacenamiento que represente la unicidad del almacén. .
Pregunta, ¿por qué Nexus ofrece almacenes de tipo grupal?
Imagínese: en casos excepcionales, si el paquete jar requerido no se puede encontrar en Alibaba Cloud, ¿aún necesita agregar almacenes proxy con otras direcciones? ¿Tiene que agregar varias direcciones espejo de almacén al archivo de configuración settings.xml?
Por tanto, se introduce el almacén tipo Grupo. Hay tres elementos de configuración que deben completarse, un nombre único y una dirección de almacenamiento, y un almacén subordinado (repositorios miembros):
representaciones: el
lado izquierdo es el almacén alternativo, el lado derecho es el almacén seleccionado, preste atención a la prioridad. orden .
Representaciones finales:
seleccione el grupo, haga clic en copiar, obtenga http://xxx:8081/repository/group/
la dirección como :, póngala settings.xml
en:
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>aliyun</name>
<url>http://xxx:8081/repository/group/</url>
</mirror>
</mirrors>
Configurar los parámetros de JVM
Cambie al directorio /usr/local/nexus3/bin
, hay un nexus.vmoptions
archivo, que es muy similar a los parámetros de inicio de JVM o al archivo de configuración de referencia de JVM de IDEA.
No se pudo transferir el artefacto 401 no autorizado
La settings.xml
etiqueta del servidor debe configurarse en, donde el nombre de usuario y la contraseña se establecen durante el proceso de instalación:
<servers>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>releases</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
mvn ERROR xxx por defecto falta
mvn clean
Error de ejecución:
[ERROR] Error executing Maven.
[ERROR] 2 problems were encountered while building the effective settings
[ERROR] 'mirrors.mirror.url' for default is missing @ C:\Users\johnn\.m2\settings.xml
[ERROR] 'mirrors.mirror.mirrorOf' for default is missing @ C:\Users\johnn\.m2\settings.xml
La razón es que hay una etiqueta vacía, simplemente elimínela:
<mirror>
</mirror>
Subir al servidor privado de Nexus3
Utilice mvn deploy
nombres para cargar el jar local al servidor privado nexus.
Si se informa un error:
Failed to deploy artifacts: Could not transfer artifact XXX from/to releases (http://xxxx:8081/repository/maven-releases/) 400 Bad Request
Análisis de errores:
mvn deploy
se produce un error 400 cuando el paquete jar ya existe en el servidor privado nexus3. El motivo es que la biblioteca predeterminada de la versión no permite la implementación repetida, es decir, la opción predeterminada es deshabilitar la implementación .
Solución: inicie
sesión en el servidor privado, busque el almacén donde se informa el error, por ejemplo maven-releases
, y modifique la política de implementación (Política de implementación) para Permitir la reimplementación :
problema de implementación de mvn
se almacenó en caché en el repositorio local, la resolución no se volverá a intentar hasta que la
solución:
modifique el settings.xml
archivo y agregue el almacén <updatePolicy>always</updatePolicy>
para forzar que la biblioteca dependiente se actualice cada vez.
Eliminar repositorio inútil