情况一:maven远程仓库无法直接倒包,但是可以在在远程仓库或者相应网站下载到jar包。此方法适合担任开发,多人协同开发请看情况二中的倒包方法(推荐方案二)
问题:maven自动导包失败。
解决方案:手动导入相应的依赖。
过程:(此处以阿里的dubbo 2.8.4为例)
1、今天通过git pull到本地一个老项目
发现有两个maven依赖无法自动导入
2、去mven repository 远程仓库查看依赖是否存在,如果存在将jar文件下载下来,如果不存在可以去阿里仓库或者百度搜索我们需要的jar包
1)百度搜索 mven repository 打开官网
2)搜索dubbo包 并打开对应结果
3)打开后发现 最新版本为2.6.4 确实没有我们配置中的2.8.4
4)思考,既然以前用过的依赖版本 一般是不会被maven删除的 所以卫们可以看一下 后边几个标签,找到我们需要的版本
5)点击2.8.4版本代开页面,确认一下是我们需要的lib,并下载jar包
3、将jar包手动导入maven仓库(maven项目导包只需导入maven仓库即可,无需对java项目进行导包)
1)打开我们本地maven仓库的位置,
(友情提示:如果你忘记了maven本地仓库的位置
①可以在maven 安装目录的conf 文件夹下找到settings.xml 的 localRepository标签中找到 如:<localRepository>/Users/groot/workspace/maven_Repository</localRepository>
②如果你用的idea 可以在这里找到
)
好吧 言归正传,我们接着导包:
打开我们本地maven仓库的位置,并一层一层打开我们需要的dubbo包的2.8.4版本所对应的文件夹(com.alibaba.dubbo.2.8.4),如下,
2)将我们刚才在mvn 远程仓库或者百度下载的jar文件copy过来
3)如果你的idea中的maven项目是自动更新配置的话包已经导入成功了,如果是手动更新,你可以点一下maven更新按钮手动倒一次包
导包之后 就不在报错了。
正确情况如下:没有波浪线 提示找不到依赖了 就可以了,左侧 pom文件依赖2.8.4依然红色提示 应该是因为maven远程仓库检索不到吧 这个包所以提示,并不影响项目使用。
依赖报错情况如下:右侧maven Dependencies 有波浪线提示找不到依赖
ok,手动导包结束!可以启动项目使用了。
情况二:maven仓库没有的jar包;或情况一,但是需要多人协同开发时,可以将jar放到项目里,上传到git、svn等,这样只需要其中一个人倒一次包就可以了。
场景描述:业务需求现在需要将数据库切换为oracle,但是maven仓库中oracle的jar包支持少得可怜。
springboot maven项目 导入oracle jar包
oracle jar 官网下载地址:http://www.oracle.com/technetwork/database/application-development/jdbc/downloads/index.html
解决问题,
1、resources下建lib目录,然后quoracle官网把需要的jar包下载下来,并将jar包放到lib下
2、pom文件中引入自己导入的jar包
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>14-9.2.0.5</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/ojdbc14-9.2.0.5.jar</systemPath>
</dependency>
3、设置把项目打成jar时同时也把本地jar包也引入进去
在 spring-boot-maven-plugin下添加一行
<includeSystemScope>true</includeSystemScope>
如:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--oracle lib下手动倒入的包 打入jar包 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
ok导入成功了 ,上传到版本管理的仓库git,或者svn。大家同步一下就都可以用了。