开发者社区 问答 正文

请教一个eclipse中maven项目:父子依赖问题?报错

背景:
一个maven的聚合项目,在父项目的pom里通过<modules>引入了几个子项目。
在eclipse里,一个java文件会同时出现在子项目和父项目里。

问题:
有一个java文件,在子项目中正常,但是在父项目里的java文件中,找不到代码中用到的jar,比如说fastjson,显示红色报错。
原因是,fastjson只定义在了子项目的pom中,没有定义在父项目的pom中,导致父项目的maven dependency中没有这个jar。

而我又不想把这个缺少的fastjson的申明定义在父项目的pom里,那么如何能让父项目不报错呢?

展开
收起
爱吃鱼的程序员 2020-06-05 14:30:58 685 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>谢谢关注,问题解决了,我总结一下。<br> 这个问题实际上是eclipse的设置问题,项目的打包和运行都没问题。<br> 之所以父项目会报错,是因为eclipse认为父项目里的java文件需要编译,而父项目的maven dependency下没有这个jar。<br> 因此,只要把父项目的classpath下的子项目的java文件移除,就不再去检查jar包是否存在,也就不报错了</p>
                    
    
                        代码里依赖了,pom就得要声明。不知道题主为什么不想在父项目中依赖(甚至不明白为什么父项目还会有代码而不是pom类型),如果只是单纯的不想打包或传递依赖,依赖scope为provided或者optional为true就好。
                    
    
                        <div class="ref"> 
    

    引用来自“chentao106”的评论

    代码里依赖了,pom就得要声明。不知道题主为什么不想在父项目中依赖(甚至不明白为什么父项目还会有代码而不是pom类型),如果只是单纯的不想打包或传递依赖,依赖scope为provided或者optional为true就好。
                            我觉得你对eclipse和maven的使用,或者工程结构有大问题。正常父项目是一个pom工程,不会有代码,打包也不会有jar更不会有代码。
    
    2020-06-05 14:31:18
    赞同 展开评论