1.概述

我们在使用seata 做分布式事务的时候,有时需要将 seata 发布到私服中,方便 修改和调整。

2.实现过程

2.1 在根目录下的pom.xml 中 增加发布配置

<distributionManagement>
        <repository>
            <id>jpaas-release</id>
            <url>http://nexus.redxun.cn:18081/repository/jpaas-hosted/</url>
        </repository>

        <snapshotRepository>
            <id>jpaas-snapshots</id>
            <url>http://nexus.redxun.cn:18081/repository/jpaas-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

2.2 执行发布命令

mvn clean deploy -pl seata-spring-boot-starter -am -s D:\mvn\settings_new.xml -DaltDeploymentRepository=jpaas-release::default::http://nexus.redxun.cn:18081/repository/jpaas-hosted/ -DskipTests

这里需要指定私服仓库,否则会发布到 apache 官方的包服务器。

  • mvn clean deploy
    clean:执行清理阶段,删除 target/ 目录(编译生成的文件)。
    deploy:执行部署阶段,将构建好的 JAR/WAR 包上传到远程仓库(通常是 Maven 仓库如 Nexus、Artifactory)

  • -pl seata-spring-boot-starter
    -pl = --projects
    只对指定的模块(子项目)执行操作。
    这里只处理名为 seata-spring-boot-starter 的模块(通常是一个 Maven 多模块项目中的一个子模块)。

  • -am = --also-make
    表示“同时构建所选模块的依赖模块”。
    也就是说,如果 seata-spring-boot-starter 依赖了 seata-core、seata-spring 等模块,Maven 会自动先构建这些依赖模块,再构建目标模块。

  • -s D:\mvn\settings_new.xml
    -s = --settings
    指定自定义的 settings.xml 文件路径。
    默认情况下,Maven 使用的是 ~/.m2/settings.xml(用户目录下)或 $MAVEN_HOME/conf/settings.xml。

  • -DaltDeploymentRepository=jpaas-release::default::http://nexus.redxun.cn:18081/repository/jpaas-hosted/
    -DaltDeploymentRepository 是一个非标准但常用的 Maven 参数,用于临时覆盖默认的部署仓库。

::::

jpaas-release:仓库 ID(在 settings.xml 中可配置认证)
default:仓库布局(一般用 default 即可,表示标准 Maven 布局)
http://nexus.redxun.cn:18081/repository/jpaas-hosted/:你要部署的目标 URL

这个参数的作用是:不使用 pom.xml 中 定义的部署地址,而是强制部署到你指定的这个 Nexus 地址。

  • -DskipTests
    跳过所有测试(包括单元测试和集成测试)。
    不运行 test 阶段,也不生成 surefire-reports。

2.3 seata 的包路径做了调整

之前是 io.seata

现在新版的包路径变成了
org.apache.seata

<dependency>
	<groupId>org.apache.seata</groupId>
	<artifactId>seata-spring-boot-starter</artifactId>
</dependency>
posted on 2025-09-12 15:44  自由港  阅读(35)  评论(0)    收藏  举报