背景:
项目需要上传jar包到maven私服,之前没接触过,经过一番琢磨解决了,这里记录下
jar包信息如下:
<dependency>
<groupId>rk.netDevice.sdk</groupId>
<artifactId>netDeviceSDKP2</artifactId>
<version>2.2.7</version>
</dependency>
找到一篇类似的文章:https://blog.csdn.net/m0_37505412/article/details/139780600
但是这篇不满足要求:
原因有二:
1. maven install 是用来把jar包安装到本地仓库,而不是远程私服
2.他的配置文件操作略显繁琐
这里记录下上传jar包到本地仓库和远程仓库的操作步骤:
要将本地JAR文件安装到Maven仓库,你可以使用mvn install:install-file
命令。以下是如何执行此操作的步骤和示例代码:
- 打开命令行界面(例如终端或命令提示符)。
- 使用
mvn install:install-file
命令,并提供必要的参数。
参数包括:
-Dfile=<path-to-jar>
:指定JAR文件的路径。
-DgroupId=<group-id>
:设置JAR的组ID。
-DartifactId=<artifact-id>
:设置JAR的构件ID。
-Dversion=<version>
:设置JAR的版本。
-Dpackaging=<packaging>
:指定打包类型,通常是jar
。
示例代码:
shellmvn install:install-file -Dfile=path/to/your/jarfile.jar \
-DgroupId=com.example \
-DartifactId=example-jar \
-Dversion=1.0.0 \
-Dpackaging=jar
替换path/to/your/jarfile.jar
、com.example
、example-jar
、1.0.0
为你的JAR文件路径和相应的组ID、构件ID和版本。
执行上述命令后,JAR将被安装到你的本地Maven仓库中,你就可以在项目的pom.xml
文件中像使用任何其他Maven依赖一样引用它了。
将JAR包安装到远程Maven仓库通常涉及到更复杂的步骤,因为这通常意味着你需要将你的库发布到一个公共或私有的Maven仓库服务器,如Nexus, Artifactory, 或者Maven Central等。以下是一般步骤和考虑因素:
1. 准备你的项目
首先,确保你的项目是一个Maven项目,并且已经正确配置了pom.xml
文件。这包括:
- groupId:项目的唯一标识符,通常是你的域名反转。
- artifactId:项目的名称。
- version:项目的版本。
2. 构建项目
使用Maven命令mvn clean install
来构建你的项目并生成JAR包。这将确保所有依赖都被正确解决,并且你的项目可以成功构建。
3. 配置Maven以部署到远程仓库
你需要在pom.xml
文件中配置Maven的部署插件(maven-deploy-plugin
),以便将构建的输出部署到远程仓库。这包括设置远程仓库的URL和认证信息(如果需要的话)。
对于私有仓库(如Nexus或Artifactory),你的pom.xml
可能会包含类似于以下的配置:
xml<distributionManagement>
<repository>
<id>your-repository-id</id>
<name>Your Repository Name</name>
<url>http://your-repository-url/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>your-snapshot-repository-id</id>
<name>Your Snapshot Repository Name</name>
<url>http://your-repository-url/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
同时,你需要在Maven的settings.xml
文件中配置仓库的认证信息(通常位于~/.m2/settings.xml
):
xml<servers>
<server>
<id>your-repository-id</id>
<username>your-username</username>
<password>your-password</password>
</server>
<server>
<id>your-snapshot-repository-id</id>
<username>your-username</username>
<password>your-password</password>
</server>
</servers>
4. 部署到远程仓库
使用Maven命令mvn deploy
来将你的项目部署到远程仓库。这个命令会读取pom.xml
和settings.xml
中的配置,将构建的输出(JAR包和POM文件)上传到指定的远程仓库。
注意事项
- 版本控制:确保你发布的版本号是唯一的,以避免覆盖之前的版本。
- 签名:对于Maven Central等公共仓库,你可能需要对你的JAR包进行签名。
- 文档和元数据:确保你的POM文件包含了足够的元数据,如项目描述、许可证信息等。
- 依赖:如果你的库依赖于其他库,请确保这些依赖也已经被正确配置在POM文件中。
对于Maven Central,你还需要遵循特定的发布流程,包括使用PGP签名你的构件,以及通过Nexus Staging Repository Manager等工具来管理你的发布。这些步骤可能更加复杂,并需要更多的配置和文档工作。
但是这种方式对我来说还是略显繁琐,后来想到maven私服有页面可以操作,于是试了下,还真成功了,以下为操作步骤:
1.查找需要上传的maven仓库
jenkins maven settings文件的配置,引用的是哪个maven仓库
我这里看到是 maven-public
然后在maven页面里找仓库配置
在上传页面查找需要上传的目标仓库,目标仓库找到
2.上传jar包到目标仓库
按如上填入,然后点上传即可
最后在搜索里搜索jar包,查看是否上传成功
遇到的问题:
1.上传时 extension为必填项,为文件的扩展名,如 jar
2.必须在内网网页上传,映射到外网的网页上传会报错,超时
3.上传时 Generate a POM file with these coordinates 选项必须要勾上,否则引用会报错
参考文档:
百度AI
https://blog.csdn.net/m0_37505412/article/details/139780600
https://blog.csdn.net/qq_35995940/article/details/78392968
https://blog.csdn.net/yjclsx/article/details/88231540