Maven高级:第二篇

Posted 雷哒哒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven高级:第二篇相关的知识,希望对你有一定的参考价值。

第一章:Maven私服

1.1-什么是maven私服

公司在自己的局域网内搭建自己的远程仓库服务器,称为私服,私服服务器即是公司内 部的 maven 远程仓库,每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自 己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件 (jar)。

私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载,如下 图:

技术图片

1.2-搭建私服环境

1.2.1-下载Nexus

Nexus 是 Maven 仓库管理器,通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强 大的仓库管理功能,构件搜索功能等 。

官网:下载

百度网盘:官网下载太慢,点击此处下载

  • 提取码:enb9

1.2.2-安装 nexus

下载后压缩包,直接解压即可。

技术图片

以管理员身份打开cmd命令,进入bin目录中,执行命令nexus.exe /run启动服务

测试是否正确安装 :打开浏览器,输入:localhost:8081,完成。

Nexus的默认端口为8081,想修改默认端口可打开nexus-3.9.0-01etc目录下的nexus-default.properties文件,修改为想要的端口号即可。

1.2.3-登录

技术图片

默认密码在解压后的sonatype-work目录下会有一个admin.password文件,打开里面就是默认密码。

技术图片

登入成功后,记得修改密码(admin123)。

1.2.4-仓库类型

查看 nexus 的仓库:

登录成功后,可以在设置中查看
技术图片

hosted,宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部 分,Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库

proxy,代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私 服自动去中央仓库下载 jar 包或者插件。

group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓 库组。

1.3-将项目发布到私服

企业中多个团队协作开发通常会将一些公用的组件、开发模块等发布到私服供其它团队 或模块开发人员使用。

如将项目ssm_pojo发布到私服中

第一步:需要在客户端即部署 ssm_pojo工程的电脑上配置 maven环境,并修改 settings.xml 文件,配置连接私服的用户和密码 。

    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>

releases 连接发布版本项目仓库

snapshots 连接测试版本项目仓库

第二步:配置项目 pom.xml

配置私服仓库的地址,本公司的自己的 jar 包会上传到私服的宿主仓库,根据工程的版本号 决定上传到哪个宿主仓库,如果版本为 release 则上传到私服的 release 仓库,如果版本为 snapshot 则上传到私服的 snapshot 仓库

<distributionManagement>
 <repository>
    <id>releases</id>
    <url>http://localhost:8081/nexus/content/repositories/releases/</url>
 </repository>
 <snapshotRepository>
    <id>snapshots</id>
    <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
 </snapshotRepository>
</distributionManagement>

注意:pom.xml 这里 和 settings.xml 配置 id对应!

测试

将项目 pojo 工程打成 jar 包发布到私服: 1、首先启动 nexus 2、对 ssm_pojo 工程执行 deploy 命令

技术图片

技术图片

1.4-从私服下载jar

? 没有配置 nexus 之前,如果本地仓库没有,去中央仓库下载,通常在企业中会在局域网 内部署一台私服服务器,有了私服本地项目首先去本地仓库找 jar,如果没有找到则连接私 服从私服下载 jar 包,如果私服没有 jar 包私服同时作为代理服务器从中央仓库下载 jar 包, 这样做的好处是一方面由私服对公司项目的依赖 jar 包统一管理,一方面提高下载速度,项 目连接私服下载 jar 包的速度要比项目连接中央仓库的速度快的多。

技术图片

在maven的settings.xml文件中配置下载模板

<profile>
<!--profile 的 id-->
 <id>dev</id>
     <repositories>
         <repository>
            <!--仓库 id,repositories 可以配置多个仓库,保证 id 不重复-->
             <id>nexus</id> 
             <!--仓库地址,即 nexus 仓库组的地址-->
             <url>http://localhost:8081/nexus/content/groups/public/</url>
            <!--是否下载 releases 构件-->
             <releases>
                <enabled>true</enabled>
             </releases>
            <!--是否下载 snapshots 构件-->
             <snapshots>
                <enabled>true</enabled>
             </snapshots>
         </repository>
     </repositories>
    <pluginRepositories>
         <!-- 插件仓库,maven 的运行依赖插件,也需要从私服下载插件 -->
         <pluginRepository>
             <!-- 插件仓库的 id 不允许重复,如果重复后边配置会覆盖前边 -->
             <id>public</id>
             <name>Public Repositories</name>
             <url>http://localhost:8081/nexus/content/groups/public/</url>
         </pluginRepository>
     </pluginRepositories>
 </profile>

在maven的settings.xml文件中配置激活下载模板

 <activeProfiles>
    <activeProfile>dev</activeProfile>
 </activeProfiles>

第二章:第三方jar包放入本地仓库或私服

第一步:进入上传界面

技术图片

技术图片

第二步:选择第三方jar包并上传

技术图片

第三步:使用

技术图片

以上是关于Maven高级:第二篇的主要内容,如果未能解决你的问题,请参考以下文章

maven仓库之第二篇

Linux从青铜到王者第二十二篇:Linux高级IO

maven仓库和maven在eclipse中的应用 第二篇

好玩的ES--第二篇之高级查询,索引原理和分词器

MyBatis框架之第二篇

Matlab高级教程_第二篇:Matlab2016a和VS2013混合