前言

      项目开发时,一般采用Maven来进行项目构建,管理,jar包下载,项目组开发人员开发时,只要在项目的pom.xml文件中,添加如下pom.xml信息从公共的库中下载相关的Jar包以及依赖Jar包,但有时候公共的库不是那么稳定而且下载速度往往很慢,一个团队一起开发项目时,如果每个组员都去下载一遍所有依赖的Jar包,其实是一件很麻烦的事情,所以这时候就有必要搭建一个Maven的私库了,这样如果再添加其他的构件时,会先在Maven私库下载好,以后才会下载到本地。以后,如果发现私服已经存在某一jar包,则会直接从私服下载,如果没有再去网络上下载,能大大的提高效率,因此很有必要搭建maven私服。

Maven私库安装部署

1.平台版本说明

centos 7.5

nexus-3.14.0-04

JDK 8

2.环境安装:安装nuxus maven私库之前先要安装好JDK、maven等必要环境

配置环境变量:

# vim /etc/profile

.....

//java的环境变量设置

export     JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

#//maven的环境变量设置

export MAVEN_HOME=/usrl/local/mevan

export PATH=$PATH:$MAVEN_HOME/bin

3.Nexus Maven私库安装

nexus maven下载,下载地址:https://www.sonatype.com/download-oss-sonatype,我下载的是nexus-3.14.0-04-unix.tar.gz

1)安装:linux版本无需安装

直接解压即可 tar -zxf nexus-3.14.0-04-unix.tar.gz

 1.1设置系统内核,这个是根据日志报警自己设置的

# vi /etc/security/limits.conf

添加下面参数

nexus    soft    nproc 2047

nexus    hard   nproc 1638423

nexus    soft       nofile 1024

nexus    hard     nofile 65536

1.2.创建nexus运行账号

#useradd nexus

1.3.修改bash_profile文件

$vi ~/.bash_profile

NEXUS_HOME=/mysolf/nexus3/nexus-3.14.0-04

export PATH=$PATH:$NEXUS_HOME/bin

$source ~/.bash_profile

#nexus

提示:

reportingservicesservice 占用内存_java

1.4.设置运行用户

$vim /mysolf/nexus3/nexus-3.14.0-04/bin/nexus.rc  #这里是控制启动用户的

#run_as_user=""   #默认是root用户启动,当然你可以去掉注释如:

run_as_user="nexus" #就变成nexus用户启动了

再次运行nexus不再报错

$nexus

reportingservicesservice 占用内存_maven_02

2)运行:

进入bin目录下,运行./nexus start,启动服务

$nexus start

reportingservicesservice 占用内存_jar_03

(可选)的配置:

# vim /usr/local/nexus/bin/nexus.vmoptions   #这个文件有一些启动参数,这里修改占用内存,存储,日志的位置等

-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.startLocalConsole=false

 

# vim /usr/local/nexus/etc/nexus-default.properties   #修改端口啊监听地址在这个配置文件中

## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/

# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
 nexus-pro-feature

访问私服

nexus3.X的默认端口是:8081

nexus3.X的默认账号是:admin

nexus3.X的默认密码是:admin123

nexus3.X搭建的maven私服的本地访问地址是:http://私服的ip:8081**

例如我的就是:http://192.168.176.181:8081/

reportingservicesservice 占用内存_java_04

可以点击上面的“设置”图标,在“设置”里可以添加用户、角色,对接LDAP等的设置,如下:

reportingservicesservice 占用内存_jar_05

reportingservicesservice 占用内存_maven_06

注意下面几点说明:

1.component name的一些说明:

    1)maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar

    2)maven-releases:私库发行版jar

    3)maven-snapshots:私库快照(调试版本)jar

    4)maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

2.Nexus默认的仓库类型有以下四种:

    1)group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;

    2)hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);

    3)proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径);

    4)virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);

3.Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;

4.Public Repositories下的仓库

   1)3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库,即第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去;

   2)Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库

   3)Central: 用来代理maven中央仓库中发布版本构件的仓库

   4)Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库

   5)Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库

   6)Releases: 内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的宿主类型仓库;release是发布版本;

   7)Snapshots:发布内部的SNAPSHOT模块的仓库,用来部署管理内部的快照版本构件的宿主类型仓库;snapshots是快照版本,也就是不稳定版本

所以自定义构建的仓库组代理仓库的顺序为:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下载包会更快。

5.Nexus默认的端口是8081,可以在etc/nexus-default.properties配置中修改。

6.Nexus默认的用户名密码是admin/admin123

7.当遇到奇怪问题时,重启nexus,重启后web界面要1分钟左右后才能访问。

8.Nexus的工作目录是sonatype-work(路径一般在nexus同级目录下)