开发者社区> 科技小能手> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

08(maven+SSH)网上商城项目实战之使用nexus搭建maven私有服务器

简介:
+关注继续查看

1.nexus 介绍

    是开源的,用该框架架设maven私有服务器


2.nexus私服环境搭建

    把nexus.war包放到tomcat的webapps下面

    浏览且登录

    用户名:admin

    密码:admin123


3.关于中央仓库注意事项

    地址:目前来说:http:repo1.maven.org/maven2/是正真的maven中央仓库的地址,该地址内置在maven的源码中 其他的都是镜像

    索引:中央仓库带有索引文件以方便用户对其搜索,完整的索引文件大小为60M,索引每周更新一次

    黑名单:如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用一个IP反复下载,这个IP会进入黑名单,因此稍有规模的使用maven时,应该使用Nexus架设私服


为什么要使用nexus私服    

1.开发人员过多,是公司IP地址被记录黑名单,无法下载

2.有些项目组没有外网,不能远程访问仓库地址,只能在局域网搭建nexus服务器,开发人员连接这台服务器



4.nexus仓库 (私有服务器  maven仓库)

    -hosted :宿主仓库,该仓库属于该公司私有的 内部项目的发布仓库

        Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包。

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

        (2)snapshot:测试版本、镜像版本   发布内部的SNAPSHOT模块的仓库

        (3)release : 发型的版本 内部的模块中release模块的发布仓库

    -proxy:代理仓库   从远程中央仓库中寻找数据的仓库

        Proxy 代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去 下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。

    -group: 仓库组    : 虚拟的概念  可以包含其它的仓库  组仓库用来方便我们开发人员进行设置的仓库



5.下载Maven仓库索引 手动下载

 首先将索引下载到本地,下载地址:nexus-maven-repository-index.zip http://download.csdn.net/detail/pk490525/6520295

 解压索引压缩包,将里面内容全部拷贝


关闭当前Nexus私服,打开Nexus目录%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx,首先删除当前目录里所有内容,然后粘贴所下载的索引,最后启动Nexus私服,索引生效。

6.修改Maven配置文件从Nexus下载构件

1) 如果想对操作系统的所有用户统一配置maven,则只需修改maven\conf\setting.xml 文件就可以了,如果只想对用户单独配置maven,只需将conf\setting.xml文件复制到C:\Documents and Settings\Administrator\.m2文件夹下(我这里假设系统装在c盘,用户为Administrator)。


2)  打开setting.xml文件,可以看到如下代码:

  1. <!-- localRepository    

  2.    | The path to the local repository maven will use to store artifacts.    

  3.    |    

  4.    | Default: ~/.m2/repository     

  5.   <localRepository></localRepository>    

  6.  -->  

表示如果不设置localRepository,maven会默认将本地仓库建到/.m2/repository文件夹下。

设置localRepository如下代码所示:<localRepository>F:\myCenterRepository</localRepository>   


7.在POM.xml文件中配置Nexus仓库

在项目的pom文件中添加如下代码:

    <repositories>

        <repository>

            <id>nexus</id>

            <name>my-nexus-repository</name>

            <url>http://127.0.0.1:8088/nexus-2.9.0/content/groups/public/</url>

            <releases>

                <enabled>true</enabled>

            </releases>

            <snapshots>

                <enabled>false</enabled>

            </snapshots>

        </repository>

    </repositories>

    <pluginRepositories>

        <pluginRepository>

            <id>nexus</id>

            <name>my-nexus-repository</name>

            <url>http://127.0.0.1:8088/nexus-2.9.0/content/groups/public/</url>

            <releases>

                <enabled>true</enabled>

            </releases>

            <snapshots>

                <enabled>false</enabled>

            </snapshots>

        </pluginRepository>

    </pluginRepositories>


8.在setting.xml文件中配置Nexus仓库

1)maven提供了profile来配置仓库信息,如下所示:

    <profiles>    

        <profile>    

          <id>myprofile</id>    

          <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>false</enabled>    

                  </snapshots>    

                </pluginRepository>    

            </pluginRepositories>    

        </profile>    

    </profiles>  


2) 激活profile

    <activeProfiles>  

        <activeProfile>myprofile</activeProfile>  

    </activeProfiles>  


3)配置镜像


    <mirrors>  

        <mirror>     

         <id>nexus</id>      

         <url>http://127.0.0.1:8088/nexus-2.9.0/content/groups/public/</url>     

         <mirrorOf>*</mirrorOf>     

       </mirror>  

     </mirrors>  


9 部署构件到Nexus仓库

maven部署

1) 修改pom文件

在pom文件中添加如下配置:

Xml代码  收藏代码

  1. <distributionManagement>    

  2.        <repository>    

  3.            <id>my-nexus-releases</id>    

  4.            <url>http://127.0.0.1:7788/nexus/content/repositories/releases/</url>    

  5.        </repository>    

  6.            

  7.        <snapshotRepository>    

  8.            <id>my-nexus-snapshot</id>    

  9.            <url>http://127.0.0.1:7788/nexus/content/repositories/snapshots/</url>    

  10.        </snapshotRepository>    

  11.   </distributionManagement>    

 2)在setting.xml文件中添加认证信息:

Xml代码  收藏代码

  1. <servers>    

  2.      <server>    

  3.       <id>my-nexus-releases</id>    

  4.       <username>admin</username>    

  5.       <password>admin123</password>    

  6.     </server>    

  7.     <server>    

  8.       <id>my-nexus-snapshot</id>    

  9.       <username>admin</username>    

  10.       <password>admin123</password>    

  11.     </server>    

  12. </servers>    

 上面的配置中我用的是超级管理员的账户,开发项目中可以改为具有部署构件权限的用户就可以了。

3)执行部署

测试的构件项目信息如下:

Xml代码  收藏代码

  1. <groupId>com.ez</groupId>    

  2.   <artifactId>TestJar</artifactId>    

  3.   <version>1.0</version>    

  4.   <packaging>jar</packaging>    

  5.   <name>TestJar</name>    

 

从上面的信息中可以看出构件为发布版本,所以部署构件的话会自动部署至releases仓库中。

 


在命令行中执行:mvn clean deploy

如果之前没用执行过该命令,maven会自动到中央仓库中下载部署所需的插件。最后在命令行中看到如下所示就代表构件已经部署成功。



本文转自 l363130002 51CTO博客,原文链接:http://blog.51cto.com/liuyj/1712753

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
网上书店管理系统项目【Java数据库编程实战】
网上书店管理系统项目【Java数据库编程实战】
23 0
Maven私服Nexus搭建教程
Maven私服Nexus搭建教程
117 0
SA实战 ·《SpringCloud Alibaba实战》第18章-消息服务:MQ使用场景与选型对比
SA实战 ·《SpringCloud Alibaba实战》第18章-消息服务:MQ使用场景与选型对比
51 0
IDEA maven web项目无法加载css,js,image等一系列路径问题
我们大二班级 刚刚学习maven 控制台输出 和mybatis的时候我提前进入学习的路程自己摸索 maven web开发 遇到了各种配置环境还有运行报错一大堆的问题, 前面的问题都属于环境配置看我之前的博客吧 这里主要讲解路径问题 步入:很多新手按照之前的步骤 部署网站的时候 发现css,js,image,还有各种有关路径的引入都无法显示,因为这些静态资源很有可能被spring拦截 方案:必须在web.xml文件中设置其为可加载资源
102 0
SpringCloud微服务实战——搭建企业级开发框架(三):创建Maven工程
在新建工程前,先了解一下什么是敏捷开发“松结对编程”及“L型代码结构”这里有详细的介绍和说明 : 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)     使用Maven创建项目之前,我们要对工程有一个大概的规划,为了保持类库统一管理,引入的jar包版本不冲突,我们需要用到Maven的BOM功能以及Spring IO platform推出的BOM功能:
119 0
【Maven】私服搭建-Nexus的安装
【Maven】私服搭建-Nexus的安装
41 0
MP实战系列(九)之集成Shiro
下面示例是在之前的基础上进行的,大家如果有什么不明白的可以参考MP实战系列的前八章 当然,同时也可以参考MyBatis Plus官方教程 建议如果参考如下教程,使用的技术为spring+mybatis plus + springmvc+jdk8+maven工程 满足这个条件可以减少不必要的麻烦,当然持久层也可以用mybatis。
1196 0
Java并发编程实战系列8之线程池的使用
ThreadPoolExecutor UML图: image image 8.1 在任务和执行策略之间隐形耦合 避免Thread starvation deadlock 8.
1304 0
【Maven】私服搭建-Nexus的安装
转载请注明出处:http://blog.csdn.net/qq_26525215本文源自【大学之旅_谙忆的博客】 可以想象这样一个情景,当公司一个项目,先是3个人开发的时候,他们用Maven已经依赖了很多包了,现在来了一个新人,他也需要开发这个项目,如果他继续从中央仓库下载,那么无疑会下载很久,那么有什么办法解决呢,那就是搭建私服,在公司局域网中下载包当然会快很多! 现在来讲解一下如何安装nexus吧。
1270 0
23703
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载