nexus搭建私服

为什么使用私服

  • 问题
    • 通过中央仓库来获取所需构件,实际开发中往往是存在问题
      • 网速慢,下载jar包时间久,工作效率低
      • 不利于公共构件的管理和维护
  • 解决方案
    • 搭建maven私服
      • 本地仓库下载速度优于远程仓库下载
      • 可自行进行构件的管理和维护
        • 第三方jar包
        • 项目模块所依赖的公共构件
  • 原理图

 

如何搭建私服

  • Apache Archiva
  • Artifactory
  • Sonatype Nexus
    • 强大的Maven仓库管理器,简化了内部仓库的维护和外部仓库的访问
    • 不需要数据库,它使用文件系统加Lucene来组织数据
    • 官网:http://www.sonatype.org/nexus/
    • 提供两种安装包
      • bundle(内嵌Jetty容器)
      • war
    • nexus-2.12.0-01-bundle.tar.gz
    • http://www.sonatype.org/nexus/archived/

安装配置

  • 安装环境准备
    • Centos 6.4 64位
    • JDK 1.8
    • nexus-2.12.0-01-bundle.tar.gz
  • 安装配置
    • 上传nexus-2.12.0-01-bundle.tar.gz到/usr/local/nexus
    • 解压tar
    • tar -zxvf nexus-2.12.0-01-bundle.tar.gz
  • 配置文件
    • conf/nexus.properties
  • 启动
    • /usr/local/nexus/nexus-2.12.0-01/bin/nexus start
    • 注意:配置 bin/nexus (RUNASUSER=root)

 

      • nano /usr/local/nexus/nexus-2.12.0-01/bin/nexus
    • 默认端口:8081
    • 默认用户名/密码:admin/admin123
    • 访问:http://服务器IP:8081/nexus/
  • 登陆

 

  • 登陆成功后

 

  • 开启远程索引(自动更新,非常慢,从美国下载,可以挂vpn下载)
    • Central Repository
    • Download Remote Indexes:True

 

    • 通过scheduleTask查看索引跟新进度

 

  • 手动更新索引
    • nexus-maven-repository-index.gz
    • nexus-maven-repository-index.properties
      • 下载地址:http://repo.maven.apache.org/maven2/.index/
    • indexer-cli-5.1.0.jar
      • 下载地址:http://maven.outofmemory.cn/org.apache.maven.indexer/indexer-cli/5.1.0/
  • 执行命令
    • chmod 777 indexer-cli-5.1.0.jar nexus-maven-repository-index.gz nexus-maven-repository-index.properties
    • java -jar indexer-cli-5.1.0.jar -u nexus-maven-repository-index.gz -d indexer
  • 停止nexus
    • /usr/local/nexus/nexus-2.12.0-01/bin/nexus stop
  • 删除原有的索引文件
    • cd /usr/local/nexus/sonatype-work/nexus/indexer/central-ctx/
    • rm -r *
  • 将自己手动生成的索引拷贝到nexus的/central-ctx/下
    • cd /usr/local/nexus/index/indexer
    • cp -r * /usr/local/nexus/sonatype-work/nexus/indexer/central-ctx/

 

  • 重启nexus即可自动更新索引
    • /usr/local/nexus/nexus-2.12.0-01/bin/nexus start

 

仓库简单介绍

  • 四种仓库类型
    • Hosted Repository:本地仓库,通常我们会部署自己的构件到这一类型的仓库
    • Proxy Repository:代理仓库,它们被用来代理远程的公共仓库,如 Maven 中央仓库
      • 可以点击对应的仓库的Configuration页签下RemoteStorage Location 属性的值即被代理的远程仓库的路径
    • VirtualRepository:虚拟仓库
    • RepositoryGroup:仓库组,用来合并多个 hosted/proxy 仓库
  • 两种仓库格式
    • maven2
    • maven1
  • 两种仓库 Policy
    • Release(发布版本,即稳定版本)
    • Snapshot(资源快照,版本相对不稳定)
  • 几个预定义仓库
    • 3rdparty
      • 存放第三方构件,一些无法从公共仓库获得的构件
      • 在仓库的 Artifact Upload页签中可以执行上传操作

    • ApacheSnapshots: 使用代理 ApacheMaven 仓库快照版本的构件仓库
    • Central: 用来代理 Maven 中央仓库中发布版本构件的仓库,策略为 Release、只会下载和缓存中央仓库中的发布版本构件。
    • Releases: 存放稳定版本的构件。比如:我们完成了一个版本下的组件开发,就可以把它发布到这里
    • Snapshots: 存放快照版本的构件。

nexus常规操作

  • 修改admin密码
  • 在发布构件一般需要帐号和密码

 

  • 新增用户

 

自动发布构件到nexus仓库

  • 在工程的 pom.xml 中添加:distributionManagement
    • 发布仓库(distributionManagement):负责管理构件的发布包和其他编译生成的支撑文件,那么我们自主开发的 jar 需要上传到 Nexus 的时候需要在pom中增加 distributionManagement 节点进行自动打包上传。 配置上传的仓库有两个:snapshot 快照仓库和 release发布仓库

  1.     <repository>
            <id>releases</id><!--ID 需要与你的 release 仓库的 RepositoryID 一致-->
            <url>http://192.168.1.6:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id><!--ID 需要与你的 snapshots 仓库的 RepositoryID 一致-->
            <url>http://192.168.1.6:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
  • 修改本地 maven 的 settings.xml 文件,配置用户名/密码

  1.     <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
     
    <!--当然若你要上传构件到其他仓库,可依照如下代码进行配置-->
    <server>
        <id>thirdparty</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>central</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
  • 在 idea 中,工程所在目录下执行 mvn 命令(mvn:deploy) 将最终版本的包拷贝到远程的 Repository,使得其他的开发者或者工程项目可以共享。所部署的包就自动上传到了Nexus指定的仓库里

 

  • 也可以手动去部署
  1. deploy:deploy-file -DgroupId=com.itrip -DartifactId=itrip-beans -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=D:\code\idea\itripback\itrip-beans\target\itrip-beans-1.0-SNAPSHOT.jar -Durl=http://192.168.1.5:8081/nexus/content/repositories/snapshots/-DrepositoryId=snapshots -DrepositoryId=snapshots
    • DgroupId 和 DartifactId 构成了该 jar 包在 pom.xml 的坐标,项目就是依靠这两个属性定位。
    • Dfile 表示需要上传的 jar 包的绝对路径。
    • Durl 私服上仓库的位置,打开 nexus——>repositories 菜单,可以看到该路径。
    • DrepositoryId 服务器的表示 id,在 Nexus 的 configuration 可以看到。
    • Dversion 表示版本信息

配置从nexus私服下载构件

  • 首先配置maven镜像
    • 配置镜像目的就是让 Maven 只使用私服,修改 Maven 的 setting.xml 文件

  1.     <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <name>local nexus repository</name>
        <url>http://192.168.1.5:8081/nexus/content/groups/public/</url>
    </mirror>
    • 在 pom 文件不做任何配置的情况下,默认是使用 id 为 central 的Maven中央库进行配置的。那么以上配置只取代了pom中的下载仓库,覆盖了 maven 默认的配置。 mirrorOf 配置为*,表示这个镜像配置适用于所有的仓库,是所有仓库的一个镜像, maven 无论要去那个仓库下载构件都会跳转到镜像URL去下载
  • 修改项目的pom文件,设置下载仓库

  1.     <repository>
            <id>public</id>
            <name>TeamMavenRepository</name>
            <url>http://192.168.1.5:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled><!--是否支持更新-->
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    • 上述配置只对当前项目有效,若需让本机所有Maven项目均使用该 Mavne私服,应该在 setting.xml中进行配置
  • 通过在settings.xml中配置profile元素, 可以让本机所有的Maven项目都使用Maven私服

  1.     <profile>
            <id>public</id>
            <repositories>
                <repository>
                    <id>public</id>
                    <name>Nexus</name>
                    <url>http://192.168.1.5:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
     
    <!--用来激活指定的profile-->
    <activeProfiles>
        <activeProfile>public</activeProfile>
    </activeProfiles>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统中管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值