求救, Spring Boot 开发中, idea 怎么引入本地 jar 包啊??

2017 年 7 月 13 日
 donething
9117 次点击
所在节点    程序员
16 条回复
Miy4mori
2017 年 7 月 13 日
当然是用 gradle 引入本地 jar 包啦,你的依赖管理和构建都被 gradle 接管了,怎么会有其他方法。
Sharuru
2017 年 7 月 13 日
gradle 里面配置 provided 依赖即可。
paledream
2017 年 7 月 13 日
Cbdy
2017 年 7 月 13 日
scope 选 system
doing
2017 年 7 月 13 日
和 spring boot 无关,和你的构建工具 gradle 有关,你添加本地 jar 到本地库,然后配置 gradle 应该就可以了,我没使用过 gradle,使用的是 maven,就是这么搞的,因为 oracle jdbc jar 就是不能从远程库中下载,只好从 oracle 数据库安装目录中找到 jdbc jar 包,添加到 maven 本地库,然后 jar 该怎么添加就怎么添加。
donething
2017 年 7 月 14 日
@doing #5 纯 Java 项目添加 jar 库后 as a library 就可以用,但是这个 web 项目,不知道是不是由于还得打包成 war 的关系,导致一直都是 NoClassDefFoundError 错误。
然后好长时间都搞不好,现在尝试把库发布到 JCenter 后直接引用了。
donething
2017 年 7 月 14 日
@paledream #3 谢谢,Java 本地项目很好引用,就是 web 项目不会配置,运行到地方后都报 NoClassDefFoundError
donething
2017 年 7 月 14 日
@Miy4mori @Sharuru 谢谢,不过在 gradle 配置里添加"compile fileTree(include: ['*.jar'], dir: 'libs')"还是那个错误。
关键是写的时候没有问题,运行代码时才报错。不理解是什么情况。
autulin
2017 年 7 月 14 日
之前用 maven 遇到同样的问题,建议还是将该 jar 包装入本地库,一劳永逸,不然最后打包同样也会有这样的坑
Rheinmetal
2017 年 7 月 14 日
打包的问题吧 gradle 开一个普通 java 工程 脱离 gradle 运行 没有依赖也是这个异常 还得手动写个 task 把依赖 jar 包拷贝出来 你这个一样的 war 包打包没把本地依赖放进去呗
写得时候 有 gradle war 包没有
mosliu
2017 年 7 月 14 日
我是用 maven,前两天刚刚解决了这个问题。
当时我显示也在 resource\lib 中引入了包,本地执行错误,打包后就出这个问题。
检查发现打完包的项目,在 META-INF\MANIFEST.MF 中是不存在引入的所需要的包名,导致的这个问题。
我的解决办法是将该 jar 加入了本地 maven 库,然后在 repository 中配置本地库,从本地库中获取就可以了。
mosliu
2017 年 7 月 14 日
使用本地库能打包,可是如果使用 dependency 中 systemPath 配置本地地址却不打包进去,有点奇怪。。
wangkai123
2017 年 7 月 14 日
spice630
2017 年 7 月 14 日
你们这些发链接的,有自己试过吗? 如果 google 能解决,我想楼主也不会在这里问了。
给一个我的方法。
build.gradle

repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
mavenLocal()
mavenCentral()
}

把 jar 文件放到 maven 的本地仓库里 比如,~/.m2/repository/org/json/201407

然后在 dependencies 里引用即可。
donething
2017 年 7 月 15 日
@mosliu #11
@spice630 #14
谢谢你们的回复,最后只能这样解决了,打算将类库上传到 JCenter 然后向你们这样引用了。
jack80342
2017 年 10 月 26 日
这几天翻译了 Spring Boot 最新的官方文档,欢迎👏反馈,https://www.gitbook.com/book/jack80342/spring-boot/details

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/375165

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX