公司之前的代码没有使用maven管理jar包,现在要求使用maven,在整理依赖的过程中发现某些jar包maven上并不更新了,还有些jar包maven上根本没有,比如钉钉的jar包。
所以没办法只能自己搭建私服,因为是在整理中,所以就在自己的windows电脑上搭建的。
Nexus的官网 https://www.sonatype.com/download-oss-sonatype 我下载的是nexus-2.14.10-01-bundle版本的。
下载解压
进入nexus-2.14.10-01-bundle\nexus-2.14.10-01\bin目录,打开该目录的命令行窗口,执行nexus install 命令,安装nexus,安装完成后进入服务配置界面,启动nexus服务
windows+R 输入下面命令进入服务配置界面
服务启动成功后打开浏览器输入http://localhost:8081/nexus nexus默认端口是8081
点击右上角的log in 登录,默认账号: admin 默认密码 :admin123
登录成功后点击左边的Views/Repositories下的Repositories 打开Repositories窗口可以看到默认创建的一些仓库,我这里使用到了Public Repositories 和 3rd party Public Repositories是公共的仓库,maven仓库下载的会放在这里,3rd party是第三方仓库,我们可以自己添加网上下载下来的第三方的jar包,或者是之前自己的jar包
这样Nexus的私服就搭建完成了,后面我们还需要配置一下maven的setting.xml文件,来使用nexus私服
打开maven的setting文件
<servers>下配置,设置如果需要连接到远程服务器使用的用户名和密码
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
<mirrors>下配置,设置maven仓库的镜像为我们刚刚安装好的nexus私服
<mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://localhost:8081/nexus/content/groups/public/</url> </mirror>
<profiles>下配置,添加仓库信息
<profile> <id>nexus</id> <repositories> <repository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://central</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile>
再添加下面配置激活仓库
<activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
到此配置完成,重启服务后将我们的maven项目更新后,再进入私服页面会发现下载了我们项目中使用的jar包
但是这样我们之前的jar包仍然没有加入到私服中,我们需要手动添加jar包到私服中
打开我们的3rd party仓库,选择artifact upload来添加jar包
上传成功后就可以在Browse Index中刷新看到我们刚刚添加的jar包,右侧就是maven中pom.xml的配置,直接复制过去就好,这样我们就完成了上传jar包到私服,配置到项目中
之后我们可以将maven本地仓库 .m2中的错误的jar包删除重新构建项目,这样项目的依赖应该就完成了,不会有找不到jar包的错误了。
如果没有用到maven上找不到的jar包,只是某些jar包下载慢或者下载失败的话,可以尝试使用国内的镜像,比如阿里的镜像等,如果还是失败可以使用私服。
吐槽下钉钉上下载的jar包名字 taobao-sdk-java-auto_1479188381469-20180919 能不能规范点。。。
目前只是将项目的依赖整理完了,目前项目还是使用ant的打包方式,后续应该会使用maven打包或者maven使用ant打包插件的方式打包