maven私服nexus3.9安装配置

摘要:
maven专用服务器nextus3.9安装配置专用服务器简介专用服务器是指专用服务器,它是一个建立在局域网上的特殊远程仓库。它旨在代理远程仓库并部署第三方构建。启动新注册的Nexus3服务。开始需要几分钟。一些概念:1.组件名称的一些描述https://repo1.maven.org/maven2/拉动罐子。政策是“释放”。只有中央仓库中发布的版本组件才会被下载和缓存。

maven私服nexus3.9安装配置

私服介绍

私服是指私有服务器,是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构建。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。

maven私服nexus3.9安装配置第1张

本人的安装环境:

1、操作系统:Windows 10 /Windows 7

2nexus版本:nexus-3.9.0-01-win64Nexus 专业版是需要付费的,这里我们下载开源免费版 Nexus OSS

下载地址:https://www.sonatype.com/nexus-repository-oss

maven私服nexus3.9安装配置第2张

maven私服nexus3.9安装配置第3张

也可以直接访问:https://www.sonatype.com/oss-thank-you-win64.zip

进行下载。

maven私服nexus3.9安装配置第4张

下载下来为一个压缩包:

maven私服nexus3.9安装配置第5张

解压到自己的安装目录:

进入/nexus-3.6.1-02-win64/nexus-3.6.1-02/bin目录下,以管理员身份打开命令行:nexus /install Nexus3 ,该命令将会将Nexus Repository注册成为Windows服务。启动刚刚注册的Nexus3服务,启动需要几分钟。

maven私服nexus3.9安装配置第6张

打开浏览器,输出localhost:8081,出现如下界面,安装成功。

maven私服nexus3.9安装配置第7张

使用默认的用户名和密码登陆(admin/admin123),

可以点击上面的"设置"图标,在"设置"里可以添加用户、角色等。

maven私服nexus3.9安装配置第8张

 

一些概念:
1.component name
的一些说明: 
  1
maven-centralmaven中央库,该仓库代理Maven中央仓库,默认从https://repo1.maven.org/maven2/拉取jar ,其策略为Release,只会下载和缓存中央仓库中的发布版本构件。
  2
maven-releases:私库发行版jar 
  3
maven-snapshots:私库快照(调试版本)jar 
  4
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

 

2.Nexus默认的仓库类型有以下四种:
  1
group(仓库组类型):又叫组仓库,开发人员自己设定的仓库组;

2hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);

 3proxy(代理类型):从远程中央仓库中寻找数据的仓库

 4virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用)

 

3.Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库,snapshots是快照版本,也就是不稳定版本。

 

4.Nexus仓库分类的概念:

1Maven可直接从宿主仓库下载构件,也可以从代理仓库下载构件,而代理仓库间接的从远程仓库下载并缓存构件

2)为了方便Maven可以从仓库组下载构件,仓库组并没有实际的内容(下图中用虚线表示),访问它时,它会转向包含的宿主仓库或者代理仓库获得实际构件的内容).

maven私服nexus3.9安装配置第9张


Nexus自带Jetty容器,默认的端口是8081若想修改Nexus的服务端口,可以在nexus-3.9.0-01-win64sonatype-work exus3etc nexus.properties配置中修改 application-port=自己设置的端口号。

5.Nexus的工作目录是sonatype-work(路径一般在nexus同级目录下),用户数据和设置都在这个目录下面,若要备份,备份这个目录即可;

 

Nexus的web界面功能介绍

1.1  Search

maven私服nexus3.9安装配置第10张
这个就是类似Maven仓库上的搜索功能,就是从私服上查找是否有哪些包。

Search这级是支持模糊搜索的,如图所示:

maven私服nexus3.9安装配置第11张

如果进入具体的目录,好像不支持模糊搜索,如图所示:

maven私服nexus3.9安装配置第12张

1.2  Browse

maven私服nexus3.9安装配置第13张

这里查看所有的库以及库里面的组件

 

1.3 Blob Stores
文件存储的地方,创建一个目录的话,对应文件系统的一个目录,如图所示:

maven私服nexus3.9安装配置第14张

2.1 Repositories

Proxy就是代理的意思,代理中央Maven仓库,当PC访问中央库的时候,先通过Proxy下载到Nexus仓库,然后再从Nexus仓库下载到PC本地。
这样的优势只要其中一个人从中央库下来了,以后大家都是从Nexus私服上进行下来,私服一般部署在内网,这样大大节约的宽带。
创建Proxy的具体步骤

1--点击"Create Repositories"按钮

maven私服nexus3.9安装配置第15张

2--选择要创建的类型

maven私服nexus3.9安装配置第16张

3--填写详细信息
Name
:就是为代理起个名字
Remote Storage:
代理的地址,Maven的地址为: https://repo1.maven.org/maven2/
Blob Store:
选择代理下载包的存放路径

创建完成后如下图:

maven私服nexus3.9安装配置第17张

将添加的代理仓库加入 Public Repositories 仓库组

maven私服nexus3.9安装配置第18张

4.配置远程索引

新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载。

由于使用代理之前需要先下索引,但是索引较大400M,从国外可能线上更新索引会比较慢,我们可以使用迅雷之类的加速工具,离线下载然后再上传到nexus服务器即可。 
索引下载地址:http://repo.maven.apache.org/maven2/.index/

maven私服nexus3.9安装配置第19张

nexus-maven-repository-index.gz nexus-maven-repository-index.properties indexer-cli-6.0.0.jar 放置到同一目录下,运行命令:java -jar indexer-cli-6.0.0.jar -u nexus-maven-repository-index.gz -d indexer

maven私服nexus3.9安装配置第20张

indexer中的全部文件移动到 sonatype-work exus3lobs仓库名下,

sonatype-work exus3lobs仓库名下面新建index nexus-maven-repository-index.gz nexus-maven-repository-index.properties 放到index文件夹下

maven私服nexus3.9安装配置第21张

重新启动nexus。等待一段时间

maven私服nexus3.9安装配置第22张

maven私服nexus3.9安装配置第23张Status Online-Remote Avaliable 变为Online-Remote Avaliable

使用一些Maven代理镜像网站就不用手动下索引了

<mirrors>

    <mirror>

        <id>alimaven</id>

        <name>aliyun maven</name>

        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

        <mirrorOf>central</mirrorOf>

    </mirror>

    <mirror>

        <id>central</id>

        <name>Maven Repository Switchboard</name>

        <url>http://repo1.maven.org/maven2/</url>

        <mirrorOf>central</mirrorOf>

    </mirror>

    <mirror>

        <id>repo2</id>

        <mirrorOf>central</mirrorOf>

        <name>Human Readable Name for this Mirror.</name>

        <url>http://repo2.maven.org/maven2/</url>

    </mirror>

    <mirror>

        <id>ibiblio</id>

        <mirrorOf>central</mirrorOf>

        <name>Human Readable Name for this Mirror.</name>

        <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>

    </mirror>

    <mirror>

        <id>jboss-public-repository-group</id>

        <mirrorOf>central</mirrorOf>

        <name>JBoss Public Repository Group</name>

        <url>http://repository.jboss.org/nexus/content/groups/public</url>

    </mirror>

    <!-- 中央仓库在中国的镜像 -->

    <mirror>

        <id>maven.net.cn</id>

        <name>oneof the central mirrors in china</name>

        <url>http://maven.net.cn/content/groups/public/</url>

        <mirrorOf>central</mirrorOf>

    </mirror>

    <mirror>

        <id>alimaven</id>

        <mirrorOf>central</mirrorOf>

        <name>aliyun maven</name>

        <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>

    </mirror>

</mirrors>

Maven集成

集成的方式主要分以下种情况:代理中央仓库、Snapshot包的管理、Release包的管理、第三方Jar上传到Nexus上。找到myeclipse使用的maven配置文件apache-maven-3.3.9confsettings.xml,如果myeclispe没修改,默认起作用的是C盘下

C:Users${user.name}.m2settings.xml 。

 

<servers>

    <server>

        <id>nexus</id>

        <username>admin</username>

        <password>admin123</password>

    </server>

</servers>

<mirrors>

    <mirror>

        <!--This sends everything else to /public -->

        <id>nexus</id>

        <!--此处配置所有的构建均从私有仓库中下载 *代表所有 -->

        <mirrorOf>*</mirrorOf>

        <!--私服路径 -->

        <url>http://localhost:8081/repository/maven-public/</url>

    </mirror>

</mirrors>

 

<profiles>

    <profile>

        <id>nexus</id>

        <!--Enable snapshots for the built in central repo to direct -->

        <!--all requests to nexus via the mirror -->

        <repositories>

            <repository>

                <id>central</id>

                <url>http://central</url>

                <releases>

                    <enabled>true</enabled>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                </snapshots>

            </repository>

        </repositories>

        <pluginRepositories>

            <pluginRepository>

                <id>central</id>

                <url>http://central</url>

                <releases>

                    <enabled>true</enabled>

                </releases>

                <snapshots>

                    <enabled>true</enabled>

                </snapshots>

            </pluginRepository>

        </pluginRepositories>

    </profile>

</profiles>

 

<activeProfiles>

    <!--make the profile active all the time -->

    <activeProfile>nexus</activeProfile>

</activeProfiles>

 

</settings>

注意以下三点:

1 <mirror><url>标签内的地址修改成nexus服务的地址。
2 <servers>
标签内填写nexus服务的账号密码,发布maven项目到nexus时,需要用到。
3 <server><id>
id需要跟<mirror><id>一致。

如果想发布项目到nexus仓库

还需要在项目的pom.xml文件内,指定发布地址:

    <distributionManagement>

        <repository>

            <id>nexus</id>

            <name>Releases</name>

            <!-- repository/maven-releases管理页面复制url地址 -->

            <url>http://localhost:8081/repository/maven-releases/</url>

        </repository>

        <snapshotRepository>

            <id>nexus</id>

            <name>Snapshot</name>

            <url>http://localhost:8081/repository/maven-snapshots/</url>

        </snapshotRepository>

    </distributionManagement>

关于仓库详细配置可参考官方文档:

http://books.sonatype.com/nexus-book/reference3/admin.html#admin-repositories

 

Nexus3.x.x上传第三方jar

第一种方式:写脚本上传jar

mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -Dfile=D:ojdbc6-11.2.0.3.jar -Durl=http://localhost:8081/repository/maven-releases/ -DrepositoryId=nexus

 

其中-DgroupId 为上传的jargroupId

-DartifactId 为上传的jarartifactId

-Dversion 为上传的jar的需要被依赖的时候的版本号

然后是-Dpackagingjar-Dfilejar包路径

-Durl 为要上传的路径

-DrepositoryId repository的唯一标示,跟第二步中赋权配置的server相同

第二种方式:使用Nexus Repository Manager图形化界面上传

maven私服nexus3.9安装配置第24张

 

参考博文:

http://www.blogjava.net/xiaomage234/archive/2014/05/13/413584.html

https://www.cnblogs.com/kevingrace/p/6201984.html

http://blog.csdn.net/lusyoe/article/details/52821088

https://www.zhihu.com/question/47261839/answer/134716331

http://blog.csdn.net/iopfan/article/details/71107686

免责声明:文章转载自《maven私服nexus3.9安装配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Git 命令行的各种退出方式【转+】以C++为核心语言的高频交易系统的讨论下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

修改Jenkins用户的密码

说明:本方法仅适用于jdk6+、tomcat6+和Jenkins专有用户数据库的Jenkins!很多童鞋在使用jenkins的时候忘记密码了,然后各种蛋疼。登陆上Jenkins服务器,进入到Jenkins。Jenkins专有用户的数据存放在JENKINS_HOME/users目录。然后输入用户名,密码111111然后就进去了.Jenkins关闭和重启详细介绍...

db2字符串函数

可以指定可选的字符串长度单位,以指示哪些单位表示函数的起始位置和结果。使用基于字符的函数解决了将字节位置返回到字符位置的问题。代码单元16和代码单元32根据字符数计数。类似地,CODEUNITS32指定使用Unicode UTF-32来理解多字节字符的字符边界。如果使用CODEUNITS获取字符长度,则用作字符串函数输入的不同CODEUNITS将导致不同的输...

CentOS7 初始化配置

允许新TCP连接net.ipv4.TCP _ tw_ reuse=1net.ipv4.TCP _ mem=945000009150000009270000000net.ipv4 TCP _ fin_ Timeout=1#启用keepalive时,TCP发送keepalive消息的频率。默认值为2小时net.ipv4.tcp _keepalive_Time=3...

支付宝支付api

使用:alipayDemo来配置支付宝支付接口1拿到商户号,回调地址,支付宝公钥,我的私钥---生成一个对象#给支付宝发请求,信息要用支付宝公钥加密#支付宝给我响应信息,信息会用商户的公钥加密,回来之后再拿用户私钥解密2对象.direct_pay传支付金额,支付商品描述,支付订单号---返回个加密的串3拿到加密的串拼到get请求参数部分pay_url="ht...

微信小程序----返回上一页刷新或当前页刷新

1.Reload()方法刷新当前页面;2.replace()方法刷新当前页面;3.页面自动刷新当前页面;实现js刷新当前页面的三种方法使用微信小程序--返回上一页刷新或当前页面刷新1.在实现效果之前,您需要了解微信小应用程序的页面生命周期。如果你不太清楚,你可以看到微信小程序——页面生命周期;2.我们可以知道微信小程序页面由五个循环组成:onLoad、onR...

USBWriter之后恢复磁盘大小

USBWriter之后恢复磁盘大小的方法:1,cmd2,diskpart3,listdisk4,selectdisk*5,clean6、在我的电脑点右键,管理,然后选磁盘管理,选择USB后,右键,然后再新建卷就可以了。...