前言
在使用 Maven 和 Nexus 私服进行项目管理和依赖管理时,我们经常会遇到各种问题,特别是在上传和下载 jar 包的过程中,出现的一些奇葩问题。
这篇博客将总结我在使用 Maven 私服上传到 Nexus 过程中遇到的一些常见问题以及相应的解决方案。
问题一:打包项目上传不到Nexus中
描述
写好项目之后上传不到Nexus中,在nexus中看不到上传的项目,然后在提示框内提示一堆错误信息
解决
- 这种是最好解决的如果是第一次使用的小伙伴可能就要检查仔细自己的配置maven的settings与项目的自己配置的
distributionManagement
一定要对应上才可以上传成功 - 如果在使用
mvn deploy
的时候出现401的情况 那么就有可能是你的xml配置用户名和密码出现了问题,这个时候仔细检查写对即可
xml
<username>admin</username>
<password>admin</password>
- 如果在使用的时候出现了如下错误
arduino
Could not find artifact org.example:springboot_server:jar:2.0-20231113.160348-1 in nexus (httsitory/SNAPSHOT/)
那么就有可能是你在上传到release私服的时候你版本号配置了
xml
<groupId>org.example</groupId>
<artifactId>springboot_server</artifactId>
<version>2.0-SNAPSHOT</version>
就需要你把-SNAPSHOT
给去掉才可以打包上传成功
问题二: 拉取打包好的jar引入不了里面的包
描述
我们在pom中直接输入对应的项目artifactId
然后写上后续的groupId即可访问到对应的上传jar包,然后在使用的时候我们可以在引入的jar包中看到自己引入的包 但是我们在引用的时候却无法导入这个包
解决
在我们被引入项目的时候需要在打包的位置添加如下配置
xml
<configuration>
<skip>true</skip>
</configuration>
问题三:拉取打包的jar无法注入
描述
当我们拉取对应的项目的时候注入时候spring无法去解析这个类 导致启动报错
java
***************************
APPLICATION FAILED TO START
***************************
Description:
Field testSpringMaven in com.hyx.contract_pro_server.controller.TestController required a bean of type 'com.controller.TestSpringMaven' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.controller.TestSpringMaven' in your configuration.
解决
这种其实挺常见的如果我们没有正确去配置启动的Bean,然后去注入这个类,使得spring无法有效的去扫描到我们需要注入的Bean就会导致上面无法注入的问题。
那么要解决这种问题其实也很简单,因为是引入的包,所以可能难倒了许多小伙伴,其实与大多数解决方案其实都类似
我们在启动类上面添加注入的注解,让项目启动的时候去注入这个类
ini
@SpringBootApplication(scanBasePackages = {"com.引入的包路径"})
然后我们再次启动就可以直接解决。
总结
在使用 Maven 和 Nexus 私服时,遇到问题是很常见的。关键在于理解 Maven 和 Nexus 的工作原理,仔细检查配置文件,以及在必要时查阅文档或社区论坛。希望这篇博客能够帮助你解决在使用 Maven 私服上传到 Nexus 过程中遇到的问题。