刘仁 Java后端开发

CentOS7.4搭建Nexus3的私有服务器

2019-02-27
LIUREN

CentOS7.4搭建Nexus3的私有服务器

经常使用Maven去下载jar包文件,突然发现公司的网络好卡,还有一些jar包每次都要手动去加载比如:Oracle的jar驱动文件。所以自己用虚拟机搭建了一个Maven的私有仓库系统使用的Nexus3的版本,主要的安装步骤还有配置信息如下:

安装环境

系统:CentOS7.4
java jdk 1.8
版本:nexus-3.15.2-01-unix.tar.gz

一.下载nexus3版本

通过官网去下载对应的nexus版本;下载地址:http://www.sonatype.org/nexus/go

上传到CentOS的 /opt目录下,然后解压

[root@localhost opt]# tar -zvxf nexus-3.15.2-01-unix.tar.gz
[root@localhost opt]# ll
drwxr-xr-x. 9 root root       163 2月  27 15:41 nexus-3.15.2-01
-rw-r--r--. 1 root root 122094643 2月  27 15:27 nexus-3.15.2-01-unix.tar.gz
drwxr-xr-x. 3 root root        20 2月  27 15:41 sonatype-work
#修改nexus文件夹名称
[root@localhost opt]# mv nexus-3.15.2-01 nexus

二.启动nexus

进入到nexus的bin目录下

[root@localhost opt]# cd nexus/
[root@localhost opt]# cd bin/
#启动nexus,并打印日志信息
[root@localhost bin]# .nexus run &
#或者如下方式启动
[root@localhost bin]# ./nexus start

启动后生成的日志信息如下:

打开防火墙端口8081

[root@localhost bin]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
[root@localhost bin]# firewall-cmd --reload

访问地址信息:http://192.168.0.137:8081

登录的默认账号和密码如下:admin/admin123

登录后的效果如下;

三.nexus的配置文件信息

如果你想配置nexus的应用在本地启动的JVM参数,可以在nexus.vmoptions

[root@localhost bin]# vi 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

如果你想改变nexus的端口号,可以在nexus-default.properties

[root@localhost etc]# vim 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

四.接下来我们直奔主题

①在创建 repository之前,还是需要先设定一个指定的文件存储目录,便于统一管理。

由下面新建的完成的,可以看出,

②第二步,创建Proxy Repository  代理资源库

远程Maven地址:https://repo1.maven.org/maven2/

其他的不用更改了。保存就好了

③第三步,创建hosted repository 托管资源库

Hosted有三种方式,Releases、SNAPSHOT、Mixed Releases: 一般是已经发布的Jar包 Snapshot: 未发布的版本 Mixed:混合的

④第四步,创建group repository 组资源库

⑤第五步,比较nexus中默认提供的

好吧,从命名上也可以看出来,系统自带的命名可以看出来这个资源库是什么类型中的什么类型的。【没有创建未发布的资源库,那以后咱们自己想去创建的,自行创建,再加入到group中就行了】

五.本地项目使用新搭建好的私有的Maven的仓库

①在原始的setting文件中加入

拷贝的这个地址,就是下面即将在setting.xml文件中添加时使用的。可以对应下面的setting.xml文件中看

 <servers>
	<server>  
        <id>nexus</id>  
        <username>admin</username>  
        <password>admin123</password>  
    </server>   
  </servers>
  <mirrors>
	<mirror>  
        <id>nexus</id>  
        <name>nexus repository</name>  
        <url>http://192.168.0.137:8081/repository/nexus-group/</url>  
        <mirrorOf>central</mirrorOf>  
    </mirror>
    <!-- 阿里云仓库 -->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
    <!-- 阿里云仓库 -->
    <mirror>
      <id>ibiblio</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://mirrors.ibiblio.org/maven2/</url>
    </mirror>
    <!-- maven中央仓库 -->
    <mirror>
      <id>repo1</id>
      <mirrorOf>central</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://repo1.maven.org/maven2/</url>
    </mirror>

  </mirrors>

然后更新项目 Maven-> Update Project

效果如下

六.使用命令上传第三方jar到nexus

使用nexus2的话,可以在界面上直接上传第三方的jar到上创建的hosted资源库,也就是托管资源库中。

可是nexus3在页面我愣是找了半天也没有找到。同时官方的说明文档我查了一半,貌似也没有发现。所以,页面上既然没有这个功能,就只能自己使用命令上传第三方jar到nexus了。

示例:

上传一个处理word的jar包到nexus上。

jar包为jacob

我们先在nexus上搜索一下:下面是搜不出来的

步骤1:

把hosted资源库,也配置到maven的settting.xml文件中

添加下面:

<!--id自定义,但是在使用命令上传的时候会用到-->
<server>  
        <id>myself_hosted</id>  
        <username>admin</username>  
        <password>admin123</password>  
 </server>

到目前为止,我的settting.xml文件也就是下面这些东西

步骤2:

以下命令

mvn deploy:deploy-file -DgroupId=sxd.jar -DartifactId=jacob -Dversion=1.18 -Dpackaging=jar -Dfile=G:\jar\jacob-1.18.jar -Durl=http://localhost:8081/repository/myself_hosted/ -DrepositoryId=myself_hosted

命令解释:

-DgroupId=sxd.jar                           自定义
-DartifactId=jacob                          自定义
-Dversion=1.18                            自定义  三个自定义,构成pom.xml文件中的坐标
-Dpackaging=jar                           上传的类型是jar类型
-Dfile=G:\jar\jacob-1.18.jar                   jar的本地磁盘位置
-Durl=http://localhost:8081/repository/myself_hosted/    hosted资源库的地址,下图中
-DrepositoryId=myself_hosted                   setting.xml文件中配置的ID

步骤3:

在项目的pom.xml文件中引入一下jar包

     <dependency>
            <groupId>sxd.jar</groupId>
            <artifactId>jacob</artifactId>
            <version>1.18</version>
            <scope>provided</scope>
        </dependency>

保存pom.xml文件。

这下,发现maven下已经引入成功。并且已经将这个jar包放入本地maven仓库了。

完全成功了。

=======================================================================================

博客地址:https://www.codepeople.cn

=======================================================================================

微信公众号:


Similar Posts

Comments