如果你只想上传项目依赖的 SNAPSHOT 版本的 JAR 包到私库中,你可以使用mvn dependency:go-offline
命令将依赖项下载到本地的 Maven 仓库中,并使用 -DincludeSnapshots=true
参数只下载 SNAPSHOT 版本的依赖包。然后,再使用mvn deploy:deploy-file
命令将 SNAPSHOT 版本的依赖包上传到你的私有 Maven 仓库。
具体步骤如下:
- 下载项目依赖
在项目的根目录下执行以下命令下载项目的依赖:
mvn dependency:go-offline -Dmaven.repo.local=<local-repository-path> -DincludeSnapshots=true
其中,local-repository-path
是你本地 Maven 仓库的路径。该命令会将项目依赖下载到本地仓库中,只下载 SNAPSHOT 版本的依赖包。
- 配置 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_username
和 your_password
是私库的用户名和密码。
- 上传 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
其中,groupId
、artifactId
、version
等参数需要和项目中的 JAR 包的信息一致,version
中需要包含 -SNAPSHOT
字符串。 -Dpackaging=jar
指定上传的包是 jar 包。file-path
是 SNAPSHOT 版本的依赖包的路径。url
是私有 Maven 仓库的 URL 地址,repositoryId
是你在 settings.xml
中配置的私有仓库 ID 。
执行以上命令后,SNAPSHOT 版本的依赖包就会被上传到你的私有 Maven 仓库中了。
Q.E.D.