linux学习:持续集成篇--Maven私有库和本地库的安装与配置-03

简介:

如果构建的Maven 项目本地仓库没有对应的依赖包,那么就会去Nexus 私服去下载,那么如果Nexus 私服也没有此依赖包,就回去远程中央仓库下载依赖,Nexus 私服下载成功后再下载至本地Maven 库供项目引用。

    wKioL1jcetqx8g7rAADmTRxSj4E202.png

maven私服器Sonatype Nexus的安装与配置

1、安装

  1.1 下载 Nexus(这里使用的是:nexus-2.11.2-03-bundle.tar.gz)

   http://www.sonatype.org/nexus/go/ 

  1.2 解压:因为解压后有两个文件夹,所以这里新建了一个nexus文件夹

1
2
3
4
5
6
     [root @localhost  opt] # mkdir nexus
     [root @localhost  opt] # tar -zxvf /opt/tar/nexus-2.11.2-03-bundle.tar.gz -C /opt/nexus/
     [root @localhost  opt] # cd nexus/
     [root @localhost  nexus] # ls
     nexus-2.11.2-03  sonatype-work
     [root @localhost  nexus] #

   (一个 nexus 服务,一个私有库目录)

  1.3 编辑 Nexus 的 nexus.properties 文件,配置端口和 work 目录信息(保留默认)

  [root@localhost conf]# cat nexus.properties

1
2
3
4
5
6
7
8
9
     # 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

  1.4 编辑 nexus 脚本

1
2
3
4
     vi /opt/nexus/nexus-2.11.2-03/bin/nexus
     
     #改成root
     RUN_AS_USER=root

  1.5 启动

1
     /opt/nexus/nexus-2.11.2-03/bin/nexus start

    wKioL1jcg_CjeHftAAAXLrw1m9I466.png

 

  1.6 访问http://192.168.175.9:8081/nexus 

    wKiom1jchDayPbUnAACbqMz44ns450.png

  1.7 登录,默认用户名 admin,默认密码 admin123

    wKiom1jcjN2DC722AAA-Lp4aAqg235.png

    到此,Nexus 已安装完成,接下来是 Nexus 的配置


2、配置(登录后)

2.1 菜单 Administration/Server 配置邮箱服务地址(如果忘记密码,可以通过该邮箱找回密码)

    wKiom1jckSDypBDdAADPNex0lAU494.png

  测试邮箱:

    wKioL1jckZbwF97zAAB8PEmMQm8073.png


    wKioL1jckbyR0eH-AAA2W3MnZic197.png

 给用户配置邮箱地址,方便忘记密码时找回:

  wKiom1jckpPwN8_VAAD_c1ggXSo162.png

2.2 修改密码

    wKiom1jckxShKkCNAABo9ecARJU871.png

2.3 仓库

    wKioL1jck_6hIevtAAEbewluVcQ446.png


group仓库组:

  Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库

hosted宿主仓库:

  主要用于发布内部项目构件或第三方的项目构件(如购买商业的构件)以及无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)

proxy代理仓库:

  代理公共的远程仓库;

virtual虚拟仓库:

  用于适配 Maven 1;


一般用到的仓库种类是 hosted、proxy。


Hosted仓库常用类型说明:

 releases:内部的模块中 release 模块的发布仓库

 snapshots:发布内部的 SNAPSHOT 模块的仓库

 3rd party:第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去


如果构建的Maven项目本地仓库没有对应的依赖包,那么就会去Nexus私服去下载,如果Nexus私服也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy 。Nexus私服下载成功后再下载至本地Maven库供项目引用。


设置proxy代理仓库(Apache Snapshots/Central/Codehaus Snapshots)准许远程下载:

    wKioL1jcl3HjyzM_AAGFCsJvgDU165.png

   注意:这里3个proxy都设置

setting.xml配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<? xml  version = "1.0"  encoding = "UTF-8" ?>
 
< settings  xmlns = "http://maven.apache.org/SETTINGS/1.0.0"
           xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation = "http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" >
  
     < localRepository >G:\workspace\maven_space</ localRepository >
     < interactiveMode >true</ interactiveMode >
     < offline >false</ offline >
   
     < pluginGroups >
     
     </ pluginGroups >
     <!--配置权限,使用默认用户-->
     < servers >
         < server >
             < id >nexus-releases</ id >
             < username >deployment</ username >
             < password >deployment123</ password >
         </ server >
         < server
             < id >nexus-snapshots</ id >
             < username >deployment</ username >
             < password >deployment123</ password >
         </ server >
     </ servers >
   
     < mirrors >
     
     </ mirrors >
   
     < profiles >
         < profile >
             < id >edu</ id >
             < activation >
                 < activeByDefault >false</ activeByDefault >
                 < jdk >1.6</ jdk >
             </ activation >
             < repositories >
                 <!-- 私有库地址
                     仓库组
                 -->
                 < repository >
                     < id >nexus</ id >
                     < url >http://192.168.175.9:8081/nexus/content/groups/public/</ url >
                     < releases >
                         < enabled >true</ enabled >
                     </ releases >
                     < snapshots >
                         < enabled >true</ enabled >
                     </ snapshots >
                 </ repository >
             </ repositories >      
             < pluginRepositories >
                 <!--插件库地址-->
                 < pluginRepository >
                     < id >nexus</ id >
                     < url >http://192.168.175.9:8081/nexus/content/groups/public/</ url >
                     < releases >
                         < enabled >true</ enabled >
                     </ releases >
                     < snapshots >
                         < enabled >true</ enabled >
                    </ snapshots >
                 </ pluginRepository >
             </ pluginRepositories >
         </ profile >
     </ profiles >
     
     <!--激活profile-->
     < activeProfiles >
         < activeProfile >edu</ activeProfile >
     </ activeProfiles >
     
</ settings >


项目的构建与发布:pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
< distributionManagement >
         < repository >
             < id >nexus-releases</ id >
             < name >Nexus Release Repository</ name >
             < url >http://192.168.175.9:8081/nexus/content/repositories/releases/</ url >
         </ repository >
         < snapshotRepository >
             < id >nexus-snapshots</ id >
             < name >Nexus Snapshot Repository</ name >
             < url >http://192.168.175.9:8081/nexus/content/repositories/snapshots/</ url >
         </ snapshotRepository >
</ distributionManagement >


发布到私有库:

    wKiom1jcneqTej2gAACnLcYEy_4840.png

     pom:<version>1.0-SNAPSHOT</version>

        wKiom1jcoKviAOagAAFaElhwJjk151.png


    pom:<version>1.0-RELEASES</version>

        wKioL1jcoWeTTX2IAACIAmie1J8632.png

4、上传第三方jar,如:demo.jar

    wKioL1jcqIKhnVOhAAIS2hPzWys536.png

            wKiom1jcqMqQT6SaAABHACraw5E754.png

        wKioL1jcqRHzjxb9AAEbg55KwA0346.png

配置其开机启动

1、负责nexus到/etc/init.d下

1
cp /opt/nexus/nexus-2.11.2-03/bin/nexus /etc/init.d/nexus

2、修改nexus

1
2
[root @localhost  ~] # vi /etc/init.d/nexus
NEXUS_HOME= "/opt/nexus/nexus-2.11.2-03/"

3、修改wrapper.conf

1
2
  [root @localhost  ~] # vi /opt/nexus/nexus-2.11.2-03/bin/jsw/conf/wrapper.conf 
   wrapper.java.command=/home/jdk1.7.0_71/bin/java

4、添加脚本的可执行权限

1
chmod  755 /etc/init.d/nexus

5、添加为系统服务

1
chkconfig --add nexus

本文转自我爱大金子博客51CTO博客,原文链接http://blog.51cto.com/1754966750/1911760如需转载请自行联系原作者

我爱大金子
相关文章
|
8月前
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
6月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
748 11
|
11月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
738 27
|
9月前
|
Kubernetes Linux 网络安全
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
初始化成功后,记录下显示的 `kubeadm join`命令。
621 0
|
11月前
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
1424 18
|
11月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
611 11
|
10月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
517 0
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
508 10
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
3618 1
|
7月前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
817 1
二、Linux文本处理与文件操作核心命令
下一篇
开通oss服务