为了账号安全,请及时绑定邮箱和手机立即绑定

java程序编写的Maven项目,上传到linux服务器后找不到依赖包

java程序编写的Maven项目,上传到linux服务器后找不到依赖包

RISEBY 2019-04-18 14:15:04
java程序编写的Maven项目,在虚拟机linux上运行时,找不到相关依赖包,我该怎么做才能让项目找到Maven依赖包?eclepse中Maven依赖包截图:linux报异常截图:
查看完整描述

7 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

maven打包的项目是可以解压的,,解压出来看第三方jar打包进去没

查看完整回答
反对 回复 2019-05-16
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

这是问题解决后做的总结,希望能帮到初学者,同时感谢回答我问题的朋友们,谢谢大家。
自己做的总结,可能会有疏漏,望海涵。

主要开发工具及安装包:
Windows中:
IDEA 2018.3.3 x64位
Maven apache-maven-3.6.0
Linux中:
ubuntu-18.04.1.0-live-server-amd64
apache-storm-1.2.2

1.创建maven项目:

https://img1.sycdn.imooc.com//5cdd17e70001e9ae06810497.jpg

https://img1.sycdn.imooc.com//5cdd17e80001cb7208880723.jpg

https://img1.sycdn.imooc.com//5cdd17e900013ef708880723.jpg

com.zheng是包名
mavenTest2是创建的项目名(eclipse和IDEA有不同,自行百度)
Version不用修改

https://img1.sycdn.imooc.com//5cdd1814000100ce08880723.jpg


maven项目创建成功。

===========项目代码编写过程(自行根据需求编写)。。。========

2.打包maven项目

https://img1.sycdn.imooc.com//5cdd18170001a6b906440607.jpg

双击install
https://img1.sycdn.imooc.com//5cdd181a0001202f04180512.jpg


最终在项目的target目录下找到打好的jar包,打包完成
https://img1.sycdn.imooc.com//5cdd181d00012b1004190504.jpg

3.将打好的jar包放到linux服务器中,在storm安装目录下执行命令:
./bin/storm jar /usr/local/test3/mavenTest2-1.0-SNAPSHOT.jar com.zheng.SayHelloTopology SayHello

其中/usr/local/test3/mavenTest2-1.0-SNAPSHOT.jar是执行的jar包具体位置;com.zheng.SayHelloTopology是主类入口;SayHello是拓扑名,显示在UI界面上。

执行jar包的具体位置,storm可以默认识别,这个问题我还没搞清楚,应该和配置文件有关,再琢磨琢磨。

4.编辑mavenTest2项目中pom.xml配置文件:

要把maven项目打包放置到linux中用storm执行,箭头所指依赖包配置版本号<version>1.2.2</version>就要和linux中storm版本一致。

https://img1.sycdn.imooc.com//5cdd18200001b80909300529.jpg


查看完整回答
反对 回复 2019-05-16
?
SMILET

TA贡献1796条经验 获得超4个赞

右键项目-->maven-->update project-->

https://img1.sycdn.imooc.com//5cdd1831000182f805220193.jpg

然后OK就行了

查看完整回答
反对 回复 2019-05-16
?
慕慕森

TA贡献1856条经验 获得超17个赞

打的什么包?war包 还是jar?


查看完整回答
反对 回复 2019-05-16
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

本地能运行吗?用Tomcat?


查看完整回答
反对 回复 2019-05-16
?
隔江千里

TA贡献1906条经验 获得超10个赞

建议你仅将自己的class打包,将外部库依赖拷贝到目标主机。
这样做的好处是:生成的文件体积小,以后有更新或变动,只需要重新拷贝这个小文件,无需拷贝实质不变化的外部库。

至于运行的问题,jvm搜索class时是按照指定的路径搜索的,只要外部库的路径在其搜索目标中即可。参考指令

$ java -cp  /your_path/xxx.jar [entry_class]


查看完整回答
反对 回复 2019-05-16
  • 7 回答
  • 0 关注
  • 2858 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信