如果你只想上传项目依赖的 SNAPSHOT 版本的 JAR 包到私库中,你可以使用mvn dependency:go-offline 命令将依赖项下载到本地的 Maven 仓库中,并使用 -DincludeSnapshots=true 参数只下载 SNAPSHOT 版本的依赖包。然后,再使用mvn deploy:deploy-file 命令将 SNAPSHOT 版本的依赖包上传到你的私有 Maven 仓库。

具体步骤如下:

  1. 下载项目依赖

在项目的根目录下执行以下命令下载项目的依赖:

mvn dependency:go-offline -Dmaven.repo.local=<local-repository-path> -DincludeSnapshots=true

其中,local-repository-path 是你本地 Maven 仓库的路径。该命令会将项目依赖下载到本地仓库中,只下载 SNAPSHOT 版本的依赖包。

  1. 配置 Maven 私库的信息

在项目根目录中的 ~/.m2/settings.xml 文件中添加 Maven 私库的相关信息。例如:

<settings>
  <servers>
    <server>
      <id>my-private-repo</id>
      <username>your_username</username>
      <password>your_password</password>
    </server>
  </servers>
</settings>

其中,my-private-repo 是你的私库 ID,在执行上传命令时会用到。 your_usernameyour_password 是私库的用户名和密码。

  1. 上传 SNAPSHOT 版本的依赖包

在上传 SNAPSHOT 版本的依赖包之前,你需要找到依赖包在本地仓库中的路径。在 Maven 仓库的根目录中,依赖包的路径通常是如下所示:

<local-repository-path>/<groupId>/<artifactId>/<version>-SNAPSHOT/<jar-name>-<version>-SNAPSHOT.jar

例如,如果依赖包的 groupId 是 com.example,artifactId 是 example-lib,version 是 1.0-SNAPSHOT,JAR 包文件名为 example-lib-1.0-20220101.123456-1.jar,那么依赖包在本地仓库的路径如下:

<local-repository-path>/com/example/example-lib/1.0-SNAPSHOT/example-lib-1.0-20220101.123456-1.jar

然后,在命令行中执行以下命令将 SNAPSHOT 版本的依赖包上传到你的私有 Maven 仓库中:

mvn deploy:deploy-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version>-SNAPSHOT -Dpackaging=jar -Dfile=<file-path> -Durl=<url> -DrepositoryId=<repositoryId> -DgeneratePom=true

其中,groupIdartifactIdversion 等参数需要和项目中的 JAR 包的信息一致,version 中需要包含 -SNAPSHOT 字符串。 -Dpackaging=jar 指定上传的包是 jar 包。file-path 是 SNAPSHOT 版本的依赖包的路径。url 是私有 Maven 仓库的 URL 地址,repositoryId 是你在 settings.xml 中配置的私有仓库 ID 。

执行以上命令后,SNAPSHOT 版本的依赖包就会被上传到你的私有 Maven 仓库中了。

Q.E.D.