美文网首页Android学习Maven
Maven学习----->Ubuntu下搭建Nexus私服

Maven学习----->Ubuntu下搭建Nexus私服

作者: 锐心凌志 | 来源:发表于2018-12-17 20:54 被阅读251次

    环境

    Android Studio、Ubuntu16.04

    前提

    1、安装Java8;
    2、安装Nexus3

    下载路径:https://help.sonatype.com/repomanager3/download

    开始配置

    1、解压到/usr/local目录下
    tar -zxvf  nexus-3.10.0-04-unix.tar.gz -C /usr/local 
    
    2、修改配置文件
    cd /usr/local/nexus-3.10.0-04/bin
    sudo gedit nexus
    
    3、启动
    cd /usr/local/nexus-3.10.0-04/bin
    sudo ./nexus run
    

    然后我们就可以打开浏览器访问了,访问本地:
    http://127.0.0.1:8081

    点击右上角可以进行登录:
    默认用户:admin 密码:admin123

    创建本地库

    1、先创建一个仓库
    2、在项目根路径下的build.gradle下增加maven配置:
    buildscript {
    
        repositories {
    
            //...
            mavenLocal()
        }
    }
    
    3、对于要上传的库Module下的build.gradle中增加配置:
    apply plugin: 'maven'
    
    android {
        //...
    
        uploadArchives{
            repositories.mavenDeployer{
                // url为新建的maven库地址
                repository(url: "http://127.0.0.1:8081/repository/com.xxx.xx/") {
                    authentication(userName: "admin", password: "admin123")
                }
                // com.xxx.xx:thirdpardfunction:1.0
                pom.version = "1.0"
                pom.artifactId = "thirdpardfunction"
                pom.groupId = "com.xxx.xx"
            }
        }
    }
    

    maven库地址:


    4、刷新gradle后在右边窗口可以看到多了一个任务:

    双击即可开始上传。

    之后可以看到上传的结果:


    配置远程仓库代理

    这里我们可以选择配置
    jcenter:
    http://jcenter.bintray.com/
    阿里:
    http://maven.aliyun.com/nexus/content/groups/public/
    jipack:
    https://jitpack.io/

    点击创建即可。

    整合多个仓库

    现在我们有多个仓库,我们希望能够同时引入,那么就需要把各个仓库添加到maven公共仓库中,这样我们可以一次性引入:

    引用仓库

    接下来,就是最重要的一步了,我们要在项目中引用我们搭建的私服。

    1、在项目根路径下的build.gradle下增加maven配置:
    allprojects {
        repositories {
            maven {
                // 仓库的地址可以在仓库列表中点击“copy”按钮,弹出的文本框中就是地址。
                // 此处引用了maven-public公共仓库
                url "http://127.0.0.1:8081/repository/maven-public/"
                // 可以单独引用某个仓库
                // url "http://127.0.0.1:8081/repository/com.xxx.xx"
            }
        }
    }
    
    2、对于要引用的依赖,直接添加到项目中的build.gradle中 :
    引用规则按照maven转gradle依赖的方式:groupId:badgeView:version
    比如之前在com.xxx.xx仓库中上传了:
                pom.version = "1.0"
                pom.artifactId = "thirdpardfunction"
                pom.groupId = "com.xxx.xx"
    对应:
        compile "com.xxx.xx:thirdpardfunction:1.0"
    

    查看对应的maven依赖:


    其他相关设置(以2.12.1-01版本配置为例)

    1、将nexus2.12.1加入到系统服务中
    [root@localhost nexus-2.12.1-01]# cp bin/nexus /etc/init.d/nexus2 
    //添加到开机启动
    [root@localhost nexus-2.12.1-01]# chkconfig --add nexus2
    //设置nexus服务开机自启动
    [root@localhost nexus-2.12.1-01]# chkconfig nexus2 on 
    

    关于 chkconfig可以参考链接:

    http://blog.csdn.net/jerry_1126/article/details/38684201
    http://man.linuxde.net/chkconfig
    https://www.cnblogs.com/qmfsun/p/3847459.html

    2、修改Nexus2脚本的配置文件

    使用vim命令,修改/etc/init.d/nexus2文件

    vim /etc/init.d/nexus2
    

    这里需要修改两个变量值

    NEXUS_HOME修改为Nexus的解压目录 /usr/local/nexus-2.12.1-01/
    RUN_AS_USER修改为 root

    #-----------------------------------------------------------------------------
    # These settings can be modified to fit the needs of your application
    
    # Set this to the root of the Nexus installation
    #NEXUS_HOME=".."
    #修改为真正的Nexus目录
    NEXUS_HOME="/usr/local/nexus-2.12.1-01/"
    
    # If specified, the Wrapper will be run as the specified user.
    
    # IMPORTANT - Make sure that the user has the required privileges to write into the Nexus installation directory.
    
    # NOTE - This will set the user which is used to run the Wrapper as well as
    #  the JVM and is not useful in situations where a privileged resource or
    #  port needs to be allocated prior to the user being changed.
    #RUN_AS_USER=
    #将运行时的用户改为root
    RUN_AS_USER=root
    
    3、配置Nexus2启动时候的jdk版本
    [root@localhost nexus-2.12.1-01]# vim bin/jsw/conf/wrapper.conf 
    

    需要将wrapper.java.command 设置为 java的真实路径,我们先使用 cat /etc/profile命令,获取到java的安装目录为 /usr/bin/java

    JAVA_HOME=/usr/java
    PATH=$PATH:%JAVA_HOME%/bin
    CLASSPATH=%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
    
    [root@localhost nexus-2.12.1-01]# ls /usr/java/bin/
    appletviewer  idlj       java     javafxpackager  javapackager  jcmd      jdb    jinfo  jmc      jrunscript  jstat      keytool       pack200     rmid         serialver   unpack200  xjc
    ControlPanel  jar        javac    javah           java-rmi.cgi  jconsole  jdeps  jjs    jmc.ini  jsadebugd   jstatd     native2ascii  policytool  rmiregistry  servertool  wsgen
    extcheck      jarsigner  javadoc  javap           javaws        jcontrol  jhat   jmap   jps      jstack      jvisualvm  orbd          rmic        schemagen    tnameserv   wsimport
    [root@localhost nexus-2.12.1-01]# 
    

    在 /usr/local/nexus-2.12.1-01 目录下执行下面的命令

    [root@localhost nexus-2.12.1-01]# vim bin/jsw/conf/wrapper.conf 
    

    需要将wrapper.java.command 设置为 java的真实路径,我们先使用 cat /etc/profile命令,获取到java的安装目录为 /usr/bin/java

    JAVA_HOME=/usr/java
    PATH=$PATH:%JAVA_HOME%/bin
    CLASSPATH=%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
    
    [root@localhost nexus-2.12.1-01]# ls /usr/java/bin/
    appletviewer  idlj       java     javafxpackager  javapackager  jcmd      jdb    jinfo  jmc      jrunscript  jstat      keytool       pack200     rmid         serialver   unpack200  xjc
    ControlPanel  jar        javac    javah           java-rmi.cgi  jconsole  jdeps  jjs    jmc.ini  jsadebugd   jstatd     native2ascii  policytool  rmiregistry  servertool  wsgen
    extcheck      jarsigner  javadoc  javap           javaws        jcontrol  jhat   jmap   jps      jstack      jvisualvm  orbd          rmic        schemagen    tnameserv   wsimport
    [root@localhost nexus-2.12.1-01]# 
    

    因此wrapper.java.command 的值我们得设置为 /usr/java/bin/java

    # Set the JSW working directory (used as base for resolving relative paths)
    wrapper.working.dir=../../..
    
    # Set the JVM executable
    # (modify this to absolute path if you need a Java that is not on the OS path)
    #wrapper.java.command=java
    #设置好Java执行文件所处的位置
    wrapper.java.command=/usr/java/bin/java
    
    4、配置Nexus2监听的端口以及仓库存储位置

    以上修改完毕后,我们再来修改nexus2.12.1监听的端口,以及仓库的存储位置,如下:

    通过vim命令修改 conf/nexus.properties文件

    [root@localhost nexus-2.12.1-01]# pwd
    /usr/local/nexus-2.12.1-01
    [root@localhost nexus-2.12.1-01]# ll
    总用量 40
    drwxr-xr-x 3 1001 1001  4096 12月 13 16:27 bin
    drwxr-xr-x 2 1001 1001  4096 12月 13 16:27 conf
    drwxr-xr-x 2 1001 1001  4096 12月 13 16:27 lib
    -rw-r--r-- 1 1001 1001 11006 3月   3 2016 LICENSE.txt
    drwxr-xr-x 2 1001 1001  4096 3月   3 2016 logs
    drwxr-xr-x 4 1001 1001  4096 12月 13 16:27 nexus
    -rw-r--r-- 1 1001 1001   782 3月   3 2016 NOTICE.txt
    drwxr-xr-x 2 1001 1001  4096 3月   3 2016 tmp
    [root@localhost nexus-2.12.1-01]# vim conf/nexus.properties
    

    将application-port设置为8081,将nexus-work设置为${bundleBasedir}/../sonatype-work/nexus,如下所示

    # Jetty section
    application-port=8081
    application-host=0.0.0.0
    nexus-webapp=${bundleBasedir}/nexus
    nexus-webapp-context-path=/nexus
    
    # Nexus section
    nexus-work=${bundleBasedir}/../sonatype-work/nexus
    runtime=${bundleBasedir}/nexus/WEB-INF
    

    参考:
    https://jingyan.baidu.com/article/ff42efa9d526e4c19e220215.html
    https://blog.csdn.net/u012939909/article/details/65631081
    https://www.cnblogs.com/zyw-205520/p/6502183.html

    相关文章

      网友评论

        本文标题:Maven学习----->Ubuntu下搭建Nexus私服

        本文链接:https://www.haomeiwen.com/subject/lixhkqtx.html