文章目录
- 前言
- 问题分析
- 报错原因
- 解决方法
- 私域
前言
在maven项目中,大家经常会使用maven插件来打包项目文件
但是有的人也习惯使用mvn命令在控制台直接进行打包,因为这样可以自定义组装一些命令,使用起来也更加灵活方便,比如mvn package -Dmaven.test.skip=true
命令就可以在打包的时候跳过单元测试的编译。
但是最近在使用的过程中发现第一种打包方式没有任何的问题,第二种打包就会频频失败,报以下错误
[ERROR] Failed to execute goal on project xxx: Could not resolve dependencies for project com.xxx.cloud.xxx:xxxx-xxxx:jar:3.8.6: The following artifacts could not be resolved: javax.jms:jms:jar
:1.1 (absent): Could not transfer artifact javax.jms:jms:jar:1.1 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [maven-public (http://192.168.0.111:8081/repository/maven-public/, default, releases+snapshots)]
问题分析
首先可以肯定的是我们之前配置的私服配置肯定是没有问题的,要不然第一种打包方式也不可能成功。那么问题的关键,我们就需要搞清楚第二种方式到底有没有走我们的私服呢?
打开我们的idea 的配置
可以发现我们即指定了settings文件和本地的仓库地址,又使用了本地的maven路径。看到这儿,问题就逐渐清晰了,因为 maven 插件使用的是图中的 User settings file
配置的文件,而mvn命令使用的则是Maven home path
路径下的maven安装包下的/conf
下的settings 文件。
报错原因
我们打开maven安装包下的/conf
下的settings 文件,发现里边并没有指定我们的私有maven仓库地址,而是采用的默认的配置,所以在打包的时候一直提示找不到对应的jar包导致失败。
解决方法
- 方法1:将我们的私有maven仓库地址配置到该settings文件中;
- 方法2:直接将
User settings file
配置的文件覆盖到maven安装包下的/conf
路径下
私域
添加阿Q微信,回复“外块”,进入专属外块群(人数满200人之后需要入群费,先到先得!),在这里可以
- 参与前沿技术社区的体验、宣发活动;
- 获取大型线下技术交流会的门票,并获得与大佬面对面交流的机会;
- 支持大型商务企业策划并推广内容传播策略;
- 群里还会不定期举办赠送技术书籍的活动;
回复“技术”进入专属技术群,与志同道合的朋友畅所欲言。好看的皮囊千篇一律,有趣的灵魂万里挑一,欢迎添加阿Q好友,围观阿Q的朋友圈。