介绍



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

myeclipse中集成了maven,如果它连接的是中央仓库,不是私有库,如果没有配置本地库,下载的依赖默认是在~/.me/repository文件加下面,如果配置了本地库,就会下载到自定义的本地库中,比如~/apache-maven-3.1.0/.me/repository

Maven私有库和本地库的安装与配置

Nexus安装

环境:CentOS 6.6 Final、JDK7、Sonatype Nexus、Maven

IP:192.168.4.221

root 用户操作

前提:已安装 JDK7 并配置好了环境变量

1、下载最新版 Nexus(本教程使用的是:nexus-2.11.2-03-bundle.tar.gz),下载地址:

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

# wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.11.2- 03-bundle.tar.gz

2、解压

# mkdir nexus
# tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C nexus # cd nexus
# ls
nexus-2.11.2-03 sonatype-work
//(一个 nexus 服务,一个私有库目录)

ps:

进入nexus-2.11.2-03下的lib服务发现有大量的jetty包,说明是通过jetty运行服务的

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

# cd nexus-2.11.2-03
# ls
bin conf lib LICENSE.txt logs nexus NOTICE.txt tmp

查看目录结构,jetty 运行

# cd conf
# vi nexus.properties
# Jetty section
//jetty的端口
application-port=8081
//允许所有的ip都能访问
application-host=0.0.0.0
//app位置在${bundleBasedir}/nexus
nexus-webapp=${bundleBasedir}/nexus
//项目访问的名字是nexus
nexus-webapp-context-path=/nexus

# Nexus section
//工作目录,即上面的私有库目录,里面目前什么都没有
nexus-work=${bundleBasedir}/../sonatype-work/nexus
runtime=${bundleBasedir}/nexus/WEB-INF

4、编辑 nexus 脚本, 配置 RUN_AS_USER 参数

# vi /root/nexus/nexus-2.11.2-03/bin/nexus
#RUN_AS_USER=
改为:
RUN_AS_USER=root

基于 Dubbo 的分布式系统架构视频教程 作者:吴水成,840765167@qq.com,wu-sc@foxmail.com

5、防火墙中打开 8081 端口

# vi /etc/sysconfig/iptables

添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT

保存后重启防火墙

# service iptables restart

6、启动 nexus

# /root/nexus/nexus-2.11.2-03/bin/nexus start
**************************************** WARNING - NOT RECOMMENDED TO RUN AS ROOT **************************************** Starting Nexus OSS...
Started Nexus OSS.

7、浏览器中打开:http://192.168.4.221:8081/nexus/



8、登录,默认用户名 admin,默认密码 admin123:





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

Nexus 配置(登录后)

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



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

点击Test SMTP setting可以测试邮箱是否能设置,点击validate,点击最后的保存后会发送邮件。



有三个用户,管理员用户(admin)、部署用户(deployment)、anoymous(有道上查的是匿名的,自我理解是游客吧,嘿嘿)

点击邮箱能够修改用户的邮箱==>save

之后退出后再次进入nexus==>输入username和e-mail(刚刚新设置的email)即可重新登录

用户修改密码

2、仓库类型

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

意思就是上图的public repository包含里下面的所有的仓库

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

proxy 代理仓库:代理公共的远程仓库; (上面的三个都可以理解为中央仓库)

virtual 虚拟仓库:用于适配 Maven 1; (基本不用)

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

Hosted 仓库常用类型说明:

  • releases 内部的模块中 release 模块的发布仓库,就是我们自己的项目给了一个version ,然后通过deploy就会发布到私有仓库的releases库中

  • snapshots 发布内部的 SNAPSHOT 模块的仓库,比如项目的verison是1.0-SNAPSHOTS

上面两个可以理解为就是我们自己写的项目install能够install到本地供其他项目访问的模块

  • 3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去,即第三方的项目构件(如购买商业的构件)以及无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)

    如果构建的 Maven 项目本地仓库没有对应的依赖包,那么就会去 Nexus 私服去下载,

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

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



注意远程仓库一共有三个,都要进行设置。

如果不设置就不能调动中央库,如果点击了保存,看左侧列表中的Scheduled Task ,发现有任务正在运行,就是去下载中央库的索引

下载完之后点击Brows Index > Fefresh>点击下面的文件加,会出现中央库各种文件的索引

4、Maven 本地库的安装与配置(请看参考视频的操作) 环境变量、setting.xml

本地库连接私有库==>私有库代理远程仓库

下载一个maven的解压包==>加压==>进入conf目录==>新建一个settins.xml,名字自定义,比如settings_edu.xml

<?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">
      //配置本地库的目录,如果不配置的话,Myeclipse的默认下载路径就是~/.m2/repository
	<localRepository>E:/apache-maven-3.1.0/.m2/repository</localRepository>
	<interactiveMode>true</interactiveMode>
    <offline>false</offline>
    <pluginGroups>
        <pluginGroup>org.mortbay.jetty</pluginGroup>
        <pluginGroup>org.jenkins-ci.tools</pluginGroup>
    </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>
		   //配置jdk版本
			    <activation>
                    <activeByDefault>false</activeByDefault>
                    <jdk>1.6</jdk>
                </activation>
			    <repositories>
					//<!-- 私有库地址,配置私有库-->
				    <repository>
						<id>nexus</id>
						//这里了是仓库组的地址,地址的具体内容在上面介绍的客户端仓库类型的图片中能够找到
						<url>http://192.168.4.221:8081/nexus/content/groups/public/</url>
						//release被snapshaots都设置成生效。
						<releases>
							<enabled>true</enabled>
						</releases>
						<snapshots>
							<enabled>true</enabled>
						</snapshots>
					</repository>
				</repositories>
				<pluginRepositories>
					//<!--插件库地址-->,插件库也需要从仓库下载
					//这里也通过私服代理
					<pluginRepository>
						<id>nexus</id>
						<url>http://192.168.4.221:8081/nexus/content/groups/public/</url>
						<releases>
							<enabled>true</enabled>
						</releases>
						<snapshots>
							<enabled>true</enabled>
					   </snapshots>
					</pluginRepository>
				</pluginRepositories>
			</profile>
	</profiles>

	//<!--激活profile-->
	//注意上面profile的配置中<id>edu</id>,id是edu,需要在这里激活一下
	<activeProfiles>
		<activeProfile>edu</activeProfile>
	</activeProfiles>

</settings>

5、MyEclipse 中的 Maven 配置(请看参考视频的操作)

上面修改了自己maven的本地配置文件,这里需要在eclipse中进行配置:

打开配置==>MyEclipse==>Maven4==>MyEclipse==>Installations==>edit ----配置自己maven的目录

打开配置==>MyEclipse==>Maven4==>MyEclipse==>User Settings==>Browse指向刚才上面的配置文件==>update setting ----修改默认的配置文件settings.xml为新的settings_edu.xml(名字随具体情况而定,上面的xml命名是什么这里就是什么)

6、项目的构建与发布演示(请看参考视频的操作)

修改 common-parent 中的 pom.xml 中的私有库地址,这个项目中原来的私有库地址是作者自己的,所以应该修改为刚刚自己重新搭建的私有库地址(没有前几节的背景,可以忽略这步)

演示如何把common-parent项目部署到私有库上,eclipse中打开common-parent的pom.xml,右键==>运行==>Maven build==>Browse Workspace==>选择common-parent项目==>Goals:clean install deploy(install安装到本地库,deploy发布到私有库)>Profiles:pom.xml>点击run

然后回到客户端,点击Snapshots的repositories==>点击下面的refresh==>发现已经有了刚刚上传到私有库的项目,但是这里不是一个jar包,只是一个pom,一个maven工程的附文件,因为当前的pom文件pom,如果jar的话就会上传jar包==>右侧有别人引用这个项目所需要输入的内容

这里注意希望发布到Snapshots还是Realese通过自己pom文件的配置进行修改,就会发布到对应的仓库中

如果common-core项目依赖common-parent项目,可是common-parent项目已经更新了很多版本,如何在自己的项目中更新引用呢? 点common-core的pom.xml,>右击>run as ==>maven isntall即可

7、上传第三方包操作演示

进入客户端==>点击3rd party==>Artifact Upload==>GAV Definition 选择GAV Parameters==>下面自行填写group id、artifact、version、pacakging选择jar包==>点击select Artifact(s) to Upload==>选中jar包==>点击add Artifact==>点击upload Artifacts

点击3rd party的Browse Index > 点击refresh ,发现已经有了jar包>右侧有引用的pependency的写法。

Dubbo入门到精通学习笔记(四):持续集成管理平台之Maven私有库和本地库的安装与配置的更多相关文章

  1. Dubbo入门到精通学习笔记(三):持续集成管理平台之SVN版本管理系统的安装和使用

    文章目录 持续集成管理平台介绍 持续集成介绍 持续集成管理平台的组成 持续集成实践介绍 即将学习 SVN版本管理系统的安装 安装 Subversion + Apache 安装 jsvnadmin 简单 ...

  2. Dubbo入门到精通学习笔记(六):持续集成管理平台之Hudson 持续集成服务器的安装配置与使用

    文章目录 安装Hudson 使用Hudson tips:自动化部署 附录:两个脚本 安装Hudson IP:192.168.4.221 8G 内存(Hudson 多个工程在同时构建的情况下比较耗内存) ...

  3. Dubbo入门到精通学习笔记(九):简易版支付系统介绍、部署(单节点)

    文章目录 部署(单节点) 一.前期准备 二.对部署环境进行规划 创建数据库 调整公共配置文件 应用部署前期准备 部署服务 部署 Web 应用 部署定时任务 一. 工程结构 第三方支付系统架构 pay- ...

  4. Dubbo入门到精通学习笔记(十三):ZooKeeper集群的安装、配置、高可用测试、升级、迁移

    文章目录 ZooKeeper集群的安装.配置.高可用测试 ZooKeeper 与 Dubbo 服务集群架构图 1. 修改操作系统的/etc/hosts 文件,添加 IP 与主机名映射: 2. 下载或上 ...

  5. Dubbo入门到精通学习笔记(五):持续集成管理平台之sonarqube代码质量管理平台的介绍与安装

    文章目录 SonarQube的介绍 SonarQube的安装 安装简介 详细安装过程 详细使用过程 SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质 ...

  6. Dubbo入门到精通学习笔记(七):基于Dubbo的分布式系统架构介绍(以第三方支付系统架构为例)、消息中间件的作用介绍

    文章目录 架构简单介绍 消息中间件在分布式系统中的作用介绍 消息中间件的定义 消息中间件的作用 应用场景 JMS(Java Message Service) JMS消息模型 实现了JMS规范的消息中间 ...

  7. Dubbo入门到精通学习笔记(一):Dubbo对传统工程进行改造、注册中心安装(Zookeeper-3.4.6)、工程结构优化

    文章目录 改造思路 样例工程:传统的单工程项目(edu-demo) 模型结构 思路 改成dubbo调用方式后的工程结构 部署环境规划 改造 愚公移山 迁移包 迁移页面: 迁移配置相关 新项目的主要作用 ...

  8. Dubbo入门到精通学习笔记(十四):ActiveMQ集群的安装、配置、高可用测试,ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

    文章目录 ActiveMQ 高可用集群安装.配置.高可用测试( ZooKeeper + LevelDB) ActiveMQ高可用+负载均衡集群的安装.配置.高可用测试 准备 正式开始 ActiveMQ ...

  9. Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试

    文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...

随机推荐

  1. 尚学linux课程---12、vim操作命令2

    尚学linux课程---12.vim操作命令2 一.总结 一句话总结: 要看不同的视频,每个视频的关键点都不一样,不如之间的的视频就没讲到vim中set nu是什么意思 学了的内容一定要练,不然真的是 ...

  2. 【转】开源框架是如何通过JMX来做监控的(一) - JMX简介和Standard MBean

    原文链接:https://www.cnblogs.com/trust-freedom/p/6842332.html#autoid-0-0-0 相信很多做Java开发的同学都使用过JDK自带的 jcon ...

  3. 微信小程序观察者模式 observers

    const app = getApp(); const request = require('../../../utils/request.js'); Component({ options: { m ...

  4. git submodule 删除及修改

    1.  删除子模块 # 逆初始化模块,其中{MOD_NAME}为模块目录,执行后可发现模块目录被清空 git submodule deinit {MOD_NAME} # 删除.gitmodules中记 ...

  5. camunda流程实例启动的一些简单操作

    public class ZccRuntimeService { RuntimeService runtimeService; RepositoryService repositoryService; ...

  6. 20140902 字符串拷贝函数 右旋转字符串 string类的编写

    1.strncpy字符串拷贝函数 //strncpy的程序 #include<stdio.h> #include<assert.h> char *strncpy1(char * ...

  7. Oracle日志查看

    一.Oracle日志的路径: 登录:sqlplus "/as sysdba" 查看路径:SQL> select * from v$logfile; SQL> selec ...

  8. 制作 macOS High Sierra U盘

    制作 macOS High Sierra U盘USB启动安装盘方法教程 (全新安装 Mac 系统) 随着苹果 macOS High Sierra 正式版发布,很多使用 Mac 电脑的同学都已升级到最新 ...

  9. springboot整合jsp 遇到的问题

    1,在idea中新建jsp文件 首先需要在springboot项目 在src 中webapp /WEB-INF/JSP 当我右键想新建一个jsp文件时默认没有 File->Project Str ...

  10. Arcpy 遍历每一个要素新建要素类

    #方法一:cursor= arcpy.da.SearchCursor(aim_fc,["OID@","SHAPE@"]) for row in cursor: ...