zoukankan      html  css  js  c++  java
  • 将jar包发布到nexus仓库

    Nexus

    Nexus是Maven的仓库管理器,用来搭建一个本地仓库服务器,这样做的好处便于管理,节约网络资源, 速度快,可以通过SNAPSHOT版本控制,开进行模块间的高效依赖开发

    关于Maven 中 jar 包的 Snapshot 和 Release 版本区别

    概念

    • 这两个概念是用于描述 jar 包,jar 包 提供给其他系统作为依赖
    • snapshot 版本代表不稳定、尚处于开发中的版本,即快照版本
    • release 版本代表功能趋于稳定、当前更新停止,可以用于发行的版本

    使用场景

    • 依赖库中的 jar 包若处于不断更新,更准确的说是不停 deploy 时,deploy会发布到私服,则使用snapshot
      • 格式:<version>1.0-snapshot</version>
      • 特点
        • 不停更新/deploy 时,版本号1.0不需更改,私服中会自动追加后缀时间为版本名
        • 其他系统使用时,会自动load时间最近也即最新的版本
    • 当第三方 jar 包功能确定时,可以提供一个release版本
      • 格式:<version>1.0</version>,去掉-snapshot即可
      • 特点
        • 其他系统使用时,版本号不变,依赖包则不变,不会自动load最新版本
        • 上述有两个意思
          • 假设第三方对 1.0 version 更新了,但本地有旧的 1.0 version,其他系统不会更新引入私服中最新的1.0,与snapshot的区别
          • 第三方 升级了2.0,其他系统必须手动更新依赖的version为 2.0,否则不能引入最新版本,这也是相对snapshot比较麻烦的地方

    依赖包 deploy 设置

    step 1,该配置也可以放到maven的setting.xml文件作为全局

    <!-- 定义snapshots库和releases库的nexus地址 -->
    <distributionManagement>
      <repository>
        <id>releases</id> //发布时,设置的存放 release 版本 jar 包的仓库地址
        <name>User Project Release</name>
        <url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
      </repository>
     
      <snapshotRepository>
        <id>snapshots</id>
        <name>User Project SNAPSHOTS</name> //发布时,设置的存放 snapshot 版本 jar 包的仓库地址
        <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
      </snapshotRepository>
    </distributionManagement>
    <!-- 定义snapshots库和releases库的账号验证 -->
    <servers><!-- distributionAcc: add here -->
            <server>
                <id>releases</id>
                <username>zenghs</username>
                <password>Ym.123456</password>
            </server>
            <server>
                <id>snapshots</id>
                <username>zenghs</username>
                <password>Ym.123456</password>
            </server>
        </servers>

    step 2

    <!-- 设置项目的jar包 身份信息配置 -->
    <groupId>cc.mzone</groupId>
    <artifactId>m1</artifactId>
    //如果想发布到snapshot仓库中,则需要在版本号后加上-SNAPSHOT(注意这里必须是大写)
    <version>0.1-SNAPSHOT</version> 
    <packaging>jar</packaging>

    jar包发布到本地缓存仓库

    • mvn clean install -DskipTests

    deploy 命令 发布到远端仓库

    • mvn clean deploy -DskipTests
    • mvn clean deploy -X -Dmaven.test.skip=true

     

     

    暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。
  • 相关阅读:
    八枚硬币问题
    找出诡异的Bug:数据怎么存不进去
    IKAnalyzer使用停用词词典进行分词
    【Quick-COCOS2D-X 3.3 怎样绑定自己定义类至Lua之四】使用绑定C++至Lua的自己定义类
    iOS 自我检測
    蓝桥杯 BASIC 29 高精度加法(大数)
    二叉树的非递归遍历
    [算法]有趣算法合辑[11-20]
    习惯的力量之四理直气壮的借口?
    《github一天一道算法题》:分治法求数组最大连续子序列和
  • 原文地址:https://www.cnblogs.com/zenghansen/p/14758510.html
Copyright © 2011-2022 走看看