Eclipse构建路径与其他项目

3
我在Eclipse中有几个项目(都是Maven项目),其中一个主项目(也是Maven项目)依赖于其余项目。我尝试通过设置Java Build Path将此依赖项添加进去(右键单击项目->首选项->Java Build Path->(标签页)项目->添加)。但是,在执行maven install目标时会遇到一个问题-编译错误:...(类)..."无法解析" ...-这明显看起来像是maven没有看到其他项目的资源。 Eclipse只是警告我像这样的一些东西:“Classpath entry /my-subproject1将不会被导出或发布。可能会导致运行时ClassNotFoundExceptions。”这些警告与每个子项目有关,并出现在主项目中。 Eclipse没有错误消息。在我的主项目中,我从子项目导入类,我可以右键单击其中一个导入并选择“打开声明”,然后有一个有效的对来自一个子项目的类的引用-所以看起来Eclipse看到了来自其他项目的依赖项(构建工作区时没有eclipse错误-仅上述提到的这些警告),但是maven在编译时看不到它们。
你有任何想法如何解决这个问题吗?
谢谢帮助。
2个回答

3

在Maven的pom.xml文件中声明依赖关系。 Maven不会识别任何Eclipse特定的配置(例如Build Path等):Maven教程

如果您使用m2eclipse插件,它将根据您的pom.xml配置配置Eclipse构建路径。


谢谢回复。我在我的主项目pom中已经添加了这些依赖项,但问题仍然存在 :( - Arek Woźniak
你的主项目POM是多模块构建还是普通的Maven项目?如果是后者,那么你必须至少安装了所有项目自身一次,以便它们显示在本地Maven存储库中。 - dunni
所有的项目都是普通的Maven项目。我会尝试你的建议。谢谢。 - Arek Woźniak
我也建议你阅读有关多模块构建的文档,因为这种结构对于你的项目是合理的。通过多模块构建,当构建主项目时将同时构建所有模块(即所有项目)。因此,如果发生更改,你不必考虑构建每个单独的项目。 - dunni

0

这不是Maven的问题吗?

Maven需要在其存储库中包含其他项目生成的jar文件。

我对Maven Eclipse插件不是很了解,但就目前而言,它似乎是这样工作的。

因此,这种情况需要构建其他项目以创建其jar文件。

但这需要很长时间。


我认为,当您有一个依赖于其他Maven项目的Maven项目,并将其导入您的工作区时,m2e插件会自动处理它。您无需每次更改代码时构建依赖项jar。这在我的多模块Web应用程序配置上有效(如果我更改了模块中的内容,则在Tomcat上运行主Web项目时,我不必重新构建此jar;Eclipse会自动完成此操作)。当我转到我的主Web项目的属性时,可以看到模块是对项目(而不是本地m2仓库中的JAR文件)的引用。 - Arek Woźniak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接