关注本站,零基础新手也能轻松搭建个人网站!
  1. 首页
  2. 玩转服务器

Jenkins之Nexus搭建Maven私有仓库

阿里云服务器优惠

重大福利提醒:【双11活动】整个11月份阿里云服务器降价了,1核2G1年58元 3年180元。这个价格买到就是赚到。180元就可以让你建站3年,全网找不到这么低的价格了。
活动地址阿里云双11降价活动(1核2G1M3年180元) 只有阿里云新用户才能参与活动。
必读事项购买阿里云服务器必读事项(省钱有绝招)
如果你不是阿里云新用户,可以找家人,亲戚的账号重新注册为阿里云新用户。一次性买满3年,我和我朋友们都是这么干的,主要是省钱。大家看了我的教程的应该都知道,多台云服务器之间的网站备份,数据迁移很容易,不用担心数据备份和迁移问题。
问题咨询:大家遇到各种问题可以微信咨询,微信号:xzjmyk 先加微信,然后拉你入交流群。

在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公司内部的Maven服务器,将第三方和内部的依赖统一管理,同时也可以节省网络带宽,当然前提是项目所需要的构件在私服中已经存在。如何在公司内部部署一个自己的Maven私有仓库呢?

私服介绍

私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

搭建私服前后Maven工作流程:

可以使用专门的Maven仓库管理软件来搭建私服,比如:Apache Archiva,Artifactory,Sonatype Nexus。这里我们使用 Sonatype Nexus。

安装Nexus

安装JDK

openjdk比较精简,会出现各种奇葩问题,故使用Oracle JDK版本

下载地址 下载jdk-8u151-linux-x64.rpm

# rpm -ivh jdk-8u151-linux-x64.rpm
# vim /etc/profile
# JAVA bin PATH setup
export JAVA_HOME=/usr/java/jdk1.8.0_151/
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

安装Maven

下载地址下载apache-maven-3.5.2-bin.tar.gz

# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
# tar -zxf apache-maven-3.5.2-bin.tar.gz
# mv apache-maven-3.5.2
# mv apache-maven-3.5.2 /usr/local/
# ln -s apache-maven-3.5.2/ maven
# vim /etc/profile
export M2_HOME=/usr/local/maven
export PATH=$PATH:$M2_HOME/bin
# source /etc/profile
# mvn -version
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T03:58:13-04:00)
Maven home: /usr/local/maven
Java version: 1.8.0_151, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-327.el7.x86_64", arch: "amd64", family: "unix"

安装Nexus

下载地址 下载版本nexus-2.12.0-01-bundle.tar.gz

# wget http://download.sonatype.com/nexus/oss/nexus-2.12.0-01-bundle.tar.gz
# tar -zxf nexus-2.12.0-01-bundle.tar.gz
# cp -r nexus-2.12.0-01 /usr/local/
# cd /usr/local/
# ln -s nexus-2.12.0-01/ nexus
# cd /usr/local/nexus/bin/
# ./nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
# vim /usr/local/nexus/bin/nexus
RUN_AS_USER=root
# ./nexus start   # 重启启动
# tail -f /usr/local/nexus/logs/wrapper.log
.........
jvm 1    | 2017-12-26 01:44:44,958-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.rest.NexusApplication_UriMatching - Strict URI matching: true
jvm 1    | 2017-12-26 01:44:45,163-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /usr/local/sonatype-work/nexus/conf/lvo-plugin.xml
jvm 1    | 2017-12-26 01:44:45,171-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.configuration.ModelUtils - Loading model /usr/local/sonatype-work/nexus/conf/ldap.xml
jvm 1    | 2017-12-26 01:44:45,808-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.webresources.internal.WebResourceServiceImpl - Discovered 1971 resources
jvm 1    | 2017-12-26 01:44:45,809-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.webresources.internal.WebResourceServlet - Max-age: 30 days (2592000 seconds)
jvm 1    | 2017-12-26 01:44:45,858-0500 INFO  [ar-4-thread-1] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Initializing remote transport for proxy repository "Apache Snapshots" [id=apache-snapshots]...
jvm 1    | 2017-12-26 01:44:46,461-0500 INFO  [ar-4-thread-3] *SYSTEM org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - Initializing remote transport for proxy repository "Central" [id=central]...
jvm 1    | 2017-12-26 01:44:46,522-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.InstrumentedSelectChannelConnector - Metrics enabled
jvm 1    | 2017-12-26 01:44:46,545-0500 INFO  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started InstrumentedSelectChannelConnector@0.0.0.0:8081
jvm 1    | 2017-12-26 01:44:46,545-0500 INFO  [jetty-main-1] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Running
jvm 1    | 2017-12-26 01:44:46,545-0500 INFO  [WrapperListener_start_runner] *SYSTEM org.sonatype.nexus.bootstrap.jetty.JettyServer - Started
jvm 1    | 2017-12-26 01:44:47,543-0500 INFO  [ar-4-thread-3] *SYSTEM org.sonatype.nexus.proxy.maven.routing.internal.RemoteContentDiscovererImpl - Remote strategy prefix-file on M2Repository(id=central) detected invalid input, results discarded: Prefix file size exceeds maximum allowed size (100000), refusing to load it.
# netstat -tunlp|grep 8081
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      21544/java

将nexus设置为Linux系统的服务,并开机自动启动

1、复制$NEXUS_HOME/bin/jsw/linux-x86-64/nexus 到/etc/init.d/nexus

2、授于nexus脚本有可执行的权限:

 chmod 755 /etc/init.d/nexus 

3、修改nexus文件,配置以下参数:

修改NEXUS_HOME 绝对路径,如:NEXUS_HOME=”/usr/local/nexus”

设置RUN_AS_USER=nexus,或都其它的用户,前提是创建了此用户。

NEXUS_HOME=/usr/local/nexus
PLATFORM=linux-x86-64
PLATFORM_DIR="${NEXUS_HOME}/bin/jsw/${PLATFORM}"
WRAPPER_CMD="${PLATFORM_DIR}/wrapper"
WRAPPER_CONF="${PLATFORM_DIR}/../conf/wrapper.conf"
PIDDIR="${NEXUS_HOME}"

4、Red Hat, Fedora, CentOS增加nexus服务

cd /etc/init.d
chkconfig --add nexus
chkconfig --levels 345 nexus on
service nexus start
tail -f /usr/local/nexus/logs/wrapper.log

配置完成后,您可以访问web界面 http://{IP}:8081/nexus/ ,进入系统进行设置

默认管理账号:admin 密码:admin123

Nexus管理

仓库类型

登录Nexus在左边菜单栏里选择Repositories,列出已有的所有仓库,可以看到type有几种类型划分

  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库
  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如oracle的JDBC驱动)以及自己或第三方的项目构件
  • proxy 代理仓库:代理公共的远程仓库
  • virtual 虚拟仓库:用于适配 Maven1

仓库常见操作

  • 修改默认存储路径
  • 同步索引
  • 修改远程同步地址为aliyun镜像地址

参考资料

https://www.sonatype.com/

原文地址:http://tencent.yundashi168.com/756.html

原创文章,作者:admin,如若转载,请注明出处:http://tencent.yundashi168.com/756.html

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code

2020年阿里云618大促活动(有香港主机)

1核/2G/1M---91元1年,三年275元;
2核/4G/1M---320元1年,三年960元;
2核/8G/1M---416元1年,三年1093元;
4核/8G/1M---465元1年,三年1396元;
1核2G(香港,不用备案)---249元1年,三年888元;点击直达
还有还有4核8G6M、8核16G10M配置,价格很低很低!

注意:这个价,只有新用户才能看到;老用户借用家人身份重新注册,这个价格重新注册也不亏!

我知道了