• maven发布jar包到nexus


    在编码过程中,有些通用的代码模块,有时候我们不想通过复制拷贝来粗暴地复用,因为这样不仅体现不了变化,也不利于统一管理。这里我们使用maven deploy的方式,将通用的模块打成jar包,发布到nexus,让其他的项目来引用,以更简洁高效的方式来实现复用和管理。

    第一:maven的settings.xml文件中设置<server>标签

        <server>
          <id>my-deploy-release</id>
          <username>admin</username>
          <password>admin123</password>
        </server>
    
        <server>
          <id>my-deploy-snapshot</id>
          <username>admin</username>
          <password>admin123</password>
        </server>

    此处设置的用户名和密码都是nexus的登陆配置

    第二:在项目的pom.xml文件中设置

    <distributionManagement>
        <repository>
            <id>my-deploy-release</id>
            <url>http://192.168.1.123:8081/nexus/content/repositories/releases/</url>
        </repository>
    
        <snapshotRepository>
            <id>my-deploy-snapshot</id>
            <url>http://192.168.1.123:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    在此,url都是nexus相应仓库的链接地址,这一步做完之后,已经完成了发布所需要的基本配置。【试试命令:mvn deploy

    注意:<server>中的<id>要和<repository>、<snapshotRepository>的<id>一致,maven在发布时,会根据此id来查找相应的用户名密码进行登录验证并上传文件。

    第三:发布的灵活性配置

    maven会判断版本后面是否带了-SNAPSHOT,如果带了就发布到snapshots仓库,否则发布到release仓库。这里我们可以在pom.xml文件中,设置

    
    
    <groupId>com.test</groupId>
    <artifactId>my-test</artifactId>
    <packaging>jar</packaging>
    <version>${project.release.version}</version>
    
    <properties>
        <java.version>1.8</java.version>
        <project.release.version>1.0-SNAPSHOT</project.release.version>
    </properties>
    
    <profiles>
        <profile>
            <id>product</id>
            <properties>
                <project.release.version>1.0</project.release.version>
            </properties>
        </profile>
    </profiles>

    说明:通过占位符${project.release.version}来控制需要发布的版本,用命令mvn deploy -P product,发布my-test的1.0版本到releases库。如果使用命令mvn deploy,则默认使用 1.0-SNAPSHOT版本号,将发布my-test的1.0-SNAPSHOT版本到snapshots库。

    第四:发布时遇到的一些问题

    1. 部署到snapshot仓库时,jar包会带上时间戳,这没关系,maven会自动取相应版本最新的jar包;
    2. Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project my-test: Failed to deploy artifacts: Could not transfer artifact...from/to release...

      部署到release仓库时,相同版本的jar包不能提交。

      原因:因为release的部署策略是【disable redeploy】,不允许覆盖更新组件。

      解决办法:修改一下版本号,再提交即可。

    3.  持续更新...

  • 相关阅读:
    伟景行 citymaker 从入门到精通(2)——工程图层树加载
    伟景行 citymaker 从入门到精通系列
    伟景行 citymaker 从入门到精通(1)——js开发,最基本demo,加载cep工程文件
    Android手机屏幕投射到电脑神器Vysor
    GeoTools坐标转换(投影转换和仿射变换)
    微信开发系列(1):企业号回调模式认证
    通过扩大IE使用内存,解决skyline在IE下模型不能加载的方法
    SDE ST_Geometry SQL st_intersects查询很慢的解决方法
    axTE3DWindowEx双屏对比控件白屏解决方法以及网上方法的校正(CreateControlOveride)
    namespace使用方法
  • 原文地址:https://www.cnblogs.com/yucy/p/7509561.html
Copyright © 2020-2023  润新知