2011-08-26 99 views
1

我在Eclipse中有几个项目(都是Maven项目)和一个主要项目(也是Maven项目),这取决于其余部分。我尝试通过设置java构建路径(右键单击项目 - >首选项 - > java构建路径 - >(选项卡)项目 - >添加)来添加此依赖项。但是执行maven安装目标时出现问题 - 这是编译错误:...(class)...“无法解析”... - 这绝对看起来像maven没有看到我的资源从其他项目。 Eclipse只会警告我这样的事情:“Classpath entry/my-subproject1不会被导出或发布,运行时可能会导致ClassNotFoundExceptions。”这些警告引用到每个子项目并发生在主项目中。 Eclipse没有错误消息。在我的主项目中,我从子项目中导入类,我可以右键单击其中一个导入并选择“打开声明”,并从我的子项目中有一个对类的有效引用 - 所以它看起来像Eclipse看到我的其他项目的依赖关系(构建工作空间时没有eclipse错误 - 只有上面提到的这些警告),但maven在编译时看不到它们。Eclipse与其他项目的构建路径

你有什么想法,我该如何解决这个问题?

感谢您的帮助。

回答

3

您必须在Maven的pom.xml中声明您的依赖关系。 Maven的不承认任何Eclipse特定的配置(如构建路径等):Maven Tutorial

如果使用m2eclipse plugin,它会根据你的pom.xml配置来配置你的Eclipse构建路径

+0

感谢您的回复。我在我的主项目pom中有这些依赖关系,但仍存在相同的问题:( –

+0

是您的主要项目pom是多模块构建还是只是一个常规maven项目?如果是后者,那么您必须为自己安装所有项目至少有一次,以便它们出现在你的本地maven仓库中 – dunni

+0

所有的项目都是常规的maven项目,我会尝试你的建议谢谢 –

0

这不是maven问题?

Maven需要从Maven仓库中的其他项目制作的jar文件。

我对maven eclipse插件了解不多,但到目前为止,在我的观察中,它似乎就像这样工作。

因此,这种情况下需要建立其他项目,以便创建它的jar文件。

但这需要很多时间。

+0

我想,当你有maven项目,这取决于你在工作空间导入的其他maven项目 - m2e插件会照顾它。每次更改代码中的某些内容时,都不必构建依赖关系jar。这适用于我的多模块Web应用程序配置(如果我更改了模块中的某些内容 - 当我在Tomcat上运行主Web项目时,我不必重新构建此jar; eclipse会自动执行此操作)。当我转到我的主要Web项目的属性时 - 我可以看到,这些模块是对项目的引用(不是当地m2回购的jar)。 –