maven配置与安装、本地仓库、阿里云、maven仓库、mybatis-3.5.6.jar安装到本地仓库

本文介绍了如何配置Maven的系统变量与PATH,详细讲解了本地仓库的设定,并指导读者打开并编辑`settings.xml`文件,特别是在第54行设置了本地仓库路径。此外,还展示了如何在阿里云服务器上配置镜像,通过在`settings.xml`的153行添加阿里云镜像来加速依赖下载。最后,提供了使用`mvn install`命令安装自定义jar包的方法,并给出了一个具体的示例,同时给出对应的`dependency`标签用于项目引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统变量:MAVEN_HOME = D:\Software\apache-maven-3.6.3-bin\apache-maven-3.6.3
系统变量:path = %MAVEN_HOME%\bin

本地仓库:

D:\Software\apache-maven-3.6.3-bin\LocalRepository
打开:D:\Software\apache-maven-3.6.3-bin\apache-maven-3.6.3\conf\settings.xml
54行:D:\Software\apache-maven-3.6.3-bin\LocalRepository

阿里云服务器:

打开:D:\Software\apache-maven-3.6.3-bin\apache-maven-3.6.3\conf\settings.xml
153行:

	<mirror>
      	<id>alimaven</id>
      	<name>aliyun maven</name>
      	<url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
      	<mirrorOf>central</mirrorOf>
    </mirror>

测试:

在命令行输入mvn help:system

maven仓库:

下包:
https://mvnrepository.com/open-source/maven-plugins

命令行:
mvn install:install-file -Dfile=要安装jar包的本地全路径 -DgroupId=jar的groupId -DartifactId=jar的 artifactId -Dversion=jar版本号 -Dpackaging=jar

mvn install:install-file -Dfile=D:\mavenlib\mybatis-3.5.6.jar -DgroupId=org.mybatis -DartifactId=mybatis -Dversion=3.5.6 -Dpackaging=jar
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.jiangy.reggie.dao.EmployeeDao.getEmployByName at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.6.jar:3.5.6] at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) ~[mybatis-3.5.6.jar:3.5.6] at org.apache.ibatis.binding.MapperProxy.lambda$cachedInvoker$0(MapperProxy.java:115) ~[mybatis-3.5.6.jar:3.5.6] at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_442] at org.apache.ibatis.binding.MapperProxy.cachedInvoker(MapperProxy.java:102) ~[mybatis-3.5.6.jar:3.5.6] at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) ~[mybatis-3.5.6.jar:3.5.6] at com.sun.proxy.$Proxy54.getEmployByName(Unknown Source) ~[na:na] at com.jiangy.reggie.service.imple.EmployeeServiceImpl.getEmployByName(EmployeeServiceImpl.java:22) ~[classes/:na] at com.jiangy.reggie.controller.EmployeeController.login(EmployeeController.java:20) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_442] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_442] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_442] at java.lang.reflect.Method.invoke(Method.java:503) ~[na:1.8.0_442] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.6.jar:5.3.6] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.6.jar:5.3.6] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.6.jar:5.3.6] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.jav
03-21
### MyBatis 中 `BindingException` 的解决方案 当遇到 `org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)` 错误时,通常表明 MyBatis 未能找到指定的 SQL 映射语句。以下是针对该问题的具体分析和解决办法。 #### 原因分析 1. **Mapper 接口 XML 文件未匹配** 如果 Mapper 接口中的方法名称其对应的 `<select>` 或其他标签定义的方法名称不一致,则会引发此错误[^3]。例如,在本例中,如果 `EmployeeDao.getEmployByName` 方法在 XML 文件中不存在或者命名不同,则会出现绑定失败的情况。 2. **XML 文件路径配置错误** 当 MyBatis 配置文件(通常是 mybatis-config.xml)中未正确定位到 DAO 层对应的 XML 文件位置时,也会触发此类异常[^4]。这可能是因为资源目录设置不当或扫描范围遗漏所致。 3. **Namespace 定义有误** Namespace 是连接 Mapper 接口 XML 文件的关键桥梁。如果 XML 文件中的 `<mapper>` 标签所声明的 namespace 不等于接口全限定类名(即 package.class),则会导致映射关系失效。 4. **SQL Session Factory Bean 初始化问题** 在 Spring Boot 等框架下集成 MyBatis 时,若 Mapper 扫描器未被正确注册至上下文中,可能导致动态代理机制无法正常工作,进而抛出上述异常[^1]。 #### 解决方案 基于以上原因,可以采取如下措施逐一排查并解决问题: - #### 检查 Mapper 接口签名一致性 确认 `EmployeeDao.java` 中是否存在名为 `getEmployByName(String name)` 的公共方法,并且其参数列表应严格对应于实际业务需求以及 XML 文件内的查询条件字段。 - #### 核实 XML 文件结构 查看 employee-mapper.xml 是否包含类似下面这样的 SELECT 节点: ```xml <select id="getEmployByName" resultType="com.example.Employee"> SELECT * FROM employees WHERE emp_name = #{name} </select> ``` - #### 对齐 Namespace 设置 将 mapper xml 文档头部改为确切反映当前 Dao 类型的形式,比如: ```xml <mapper namespace="com.yourcompany.dao.EmployeeDao"/> ``` 这里的字符串需完全匹配目标 Java Interface 的 fully qualified classpath 表达形式。 - #### 加强资源配置管理 修改 spring-mybatis.xml 或 application.properties/yml 来确保所有必要的 sqlmap resources 得到了加载。对于 maven 工程来说,可调整 pom.xml 添加过滤规则以便打包期间保留这些元数据文件: ```properties mybatis.mapper-locations=classpath*:mappers/*.xml ``` - #### 测试环境验证 使用单元测试案例来单独运行涉及这部分逻辑的功能模块,观察是否有新的潜在隐患浮现出来。 ```java // Example Unit Test Code Snippet @Test public void testGetEmployByName() { SqlSession session = factory.openSession(); try{ EmployeeDao dao = session.getMapper(EmployeeDao.class); assertNotNull(dao); // Ensure the proxy object is created successfully. String testName = "John Doe"; List<Employee> results = dao.getEmployByName(testName); assertFalse(results.isEmpty()); } finally { session.close(); } } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值