Android学习Maven

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

2018-12-17  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读