背景:
一个maven的聚合项目,在父项目的pom里通过<modules>引入了几个子项目。
在eclipse里,一个java文件会同时出现在子项目和父项目里。
问题:
有一个java文件,在子项目中正常,但是在父项目里的java文件中,找不到代码中用到的jar,比如说fastjson,显示红色报错。
原因是,fastjson只定义在了子项目的pom中,没有定义在父项目的pom中,导致父项目的maven dependency中没有这个jar。
而我又不想把这个缺少的fastjson的申明定义在父项目的pom里,那么如何能让父项目不报错呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
<p>谢谢关注,问题解决了,我总结一下。<br> 这个问题实际上是eclipse的设置问题,项目的打包和运行都没问题。<br> 之所以父项目会报错,是因为eclipse认为父项目里的java文件需要编译,而父项目的maven dependency下没有这个jar。<br> 因此,只要把父项目的classpath下的子项目的java文件移除,就不再去检查jar包是否存在,也就不报错了</p>
代码里依赖了,pom就得要声明。不知道题主为什么不想在父项目中依赖(甚至不明白为什么父项目还会有代码而不是pom类型),如果只是单纯的不想打包或传递依赖,依赖scope为provided或者optional为true就好。
<div class="ref">
我觉得你对eclipse和maven的使用,或者工程结构有大问题。正常父项目是一个pom工程,不会有代码,打包也不会有jar更不会有代码。