通过mvn指令进行安装jar包时,总是安装在系统默认路径的解决办法,以及安装jar包时build failure问题解决办法

本文详细阐述如何在Maven中安装jar包时指定非默认路径,包括问题排查过程、解决步骤以及使用iTextAsian.jar包的实例,涉及setting.xml配置和中文路径名注意事项。

问题描述:

下图是使用mvn指令进行jar包的安装操作
mvn安装jar包的命令:

mvn install:install-file -Dfile=jar包的位置 -DgroupId=com.iot -DartifactId=mid_sdk -Dversion=1.0.0 -Dpackaging=jar

在这里插入图片描述
问题详情描述:
通过该命令安装它总是安装在系统盘(c盘),我已经设置了本地仓库的路径,且idea中也已经早就设置了路径为自己的路径,但是就是在安装jar包时,它总是给我安装在了默认的c盘路径下

20230906补充问题:
运行命令时,出现build failure问题
在这里插入图片描述
我就直接把这个问题的解决办法补充在这儿了:因为你放jar包的位置不能出现中文路径名,我在把jar包放在了一个没有中文路径名的位置,然后重新写了这个-Dfile=后面的内容,然后运行命令就成功安装了

问题排查:

在idea中设置的本地仓库是我自定义的D盘
在这里插入图片描述
查看mvn -version指令 看自己的mvn指令位置在哪儿 也可以看到在我自己设置的路径下:
在这里插入图片描述

解决办法:

找到自己的maven下的setting.xml文件
/conf/setting.xml
在这里插入图片描述
然后打开这个文件:
<localRepository>加入本地仓库的自定义路径/repository</localRepository>
在这里插入图片描述
成功解决,之后自己再通过mvn指令安装jar的时候就能够安装在自己定义的路径下了

关于最后使用的这个软件是notepad++ 它可查看所有的代码相关文件,且编辑提示非常的清晰

演示安装iTextAsian.jar包

执行命令:

mvn install:install-file -Dfile=D:\*****\intern_dingding\iTextAsian-2.1.7.jar -DgroupId=com.lowagie -DartifactId=iTextAsian -Dversion=2.1.7 -Dpackaging=jar

在这里插入图片描述

<think>我们之前讨论了一个Spring Boot应用中的错误,具体是关于BeanDefinitionStoreException,涉及userMapper的factoryBeanObjectType属性类型无效的问题。我们已经提出了几种解决方案,括升级依赖、检查Mapper扫描配置和检查依赖冲突。 用户现在执行了`mvn dependency:tree`并且显示BUILD SUCCESS,询问这是否表明不是依赖冲突的问题。 注意:`mvn dependency:tree`命令执行成功(BUILD SUCCESS)只表示命令成功运行并输出了依赖树,但并不代表没有依赖冲突。依赖冲突可能需要通过查看依赖树的内容来判断。 因此,我们需要解释: 1. `mvn dependency:tree`命令成功执行仅表示Maven能够成功解析依赖并输出树结构,不表示没有冲突。 2. Maven本身对依赖冲突的处理策略是:如果同一个依赖有多个版本,Maven会根据“最近定义”原则(nearest definition)选择一个版本来使用,但这可能仍然导致问题,尤其是当选择的版本与Spring Boot不兼容。 3. 我们需要检查依赖树中是否存在多个版本的MyBatis或MyBatis-Spring,以及是否引入了与Spring Boot 3.x不兼容的旧版本。 所以,用户需要仔细查看`mvn dependency:tree`的输出,特别是查找与MyBatis和Spring相关的依赖是否有多个版本。例如,搜索`mybatis`和`mybatis-spring`。 具体步骤: 1. 在终端运行:`mvn dependency:tree > dependencies.txt`,将依赖树输出到文件。 2. 打开`dependencies.txt`,搜索`mybatis`和`mybatis-spring`,检查版本号以及是否出现多次。 3. 同,检查其他相关依赖,例如Spring Boot的starter和Spring框架的依赖。 如果发现冲突,需要在pom.xml中排除旧版本依赖。 示例:如果发现某个依赖引入了旧版mybatis-spring,可以这样排除: ```xml <dependency> <groupId>some.group</groupId> <artifactId>some-artifact</artifactId> <version>X.X.X</version> <exclusions> <exclusion> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </exclusion> </exclusions> </dependency> ``` 因此,即使`mvn dependency:tree`命令执行成功,也不能排除依赖冲突的可能性,必须通过检查输出来确认。 另外,用户还应该检查是否已经按照之前的建议升级了MyBatis-Spring Boot Starter的版本(3.0.3),并且主类上正确配置了`@MapperScan`。 所以,回答用户的问题BUILD SUCCESS并不表示没有依赖冲突,需要仔细检查依赖树输出。 接下来,我们给出具体的回答步骤。 </think>`mvn dependency:tree` 显示 BUILD SUCCESS 仅表示 Maven 成功执行了依赖树分析命令,**并不等同于没有依赖冲突问题**。以下是详细解释和后续排查建议: ### 关键解析 1. **命令成功 ≠ 无依赖冲突** `dependency:tree` 命令只是展示依赖关系树,无论是否存在冲突都会显示 BUILD SUCCESS。冲突需要在输出内容中手动识别。 2. **依赖冲突的典型表现** 在输出中搜索 `mybatis` 和 `spring` 相关条目,重点检查: ```bash [INFO] +- org.mybatis.spring.boot:mybatis-spring-boot-starter:jar:3.0.3:compile [INFO] | +- org.mybatis:mybatis:jar:3.5.13:compile # ✅ 正确版本 [INFO] | \- org.mybatis:mybatis-spring:jar:3.0.3:compile # ✅ 正确版本 [WARNING] Found duplicate: org.mybatis:mybatis:jar:2.7.6 # ❌ 冲突版本 ``` --- ### 验证步骤 #### 1. 检查依赖树输出 执行以下命令保存完整依赖树: ```bash mvn dependency:tree -DoutputFile=dependencies.txt ``` 打开 `dependencies.txt` 搜索关键词: ```bash grep -E "mybatis|spring" dependencies.txt ``` 重点关注: - 多个不同版本的 `mybatis` 或 `mybatis-spring` - 存在 `mybatis-spring-boot-starter` 版本低于 3.0.0 #### 2. 验证推荐依赖配置 确保 `pom.xml` 含: ```xml <dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> <!-- 必须排除旧版本 starter --> <exclusions> <exclusion> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </exclusion> </exclusions> </dependencies> ``` #### 3. 使用 Maven 冲突检测插件 在 `pom.xml` 添加: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.4.1</version> <executions> <execution> <id>enforce</id> <configuration> <rules> <dependencyConvergence/> </rules> </configuration> <goals><goal>enforce</goal></goals> </execution> </executions> </plugin> </plugins> </build> ``` 运行检测: ```bash mvn enforcer:enforce ``` 若输出 `BUILD FAILURE` 并显示冲突详情,则确认存在依赖问题。 --- ### 排除依赖冲突后的验证 1. 清理并重建项目: ```bash mvn clean install -U ``` 2. 检查编译输出目录: ```bash ls -l target/classes/com/example/bspring/mapper/ # 确保只有 UserMapper.class 没有 UserMapper.xml ``` 3. 验证注解配置: ```java @SpringBootApplication @MapperScan("com.example.bspring.mapper") // 必须存在 public class BSpringApplication { ... } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿,葱来了-C is coming

老板大气

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值