不是一个很好的标题,我会尝试解释。
这已经工作了几个月,然后今天由于某种未知的原因,当一切都没有改变(真的!)时,eclipse 无法解决来自兄弟姐妹(对等项目)的任何导入。没有 eclipse 或 eclipse 插件更新,没有源代码更改,没有配置更改。
我有一个相当标准的项目结构:
父项目 -- clild_project_a ---- pom.xml -- clild_project_b ---- pom.xml --child_project_c ---- pom.xml -- pom.xml(用于父级)。
现在项目 a 和 b 都依赖于 c 中的代码。
项目一个 pom.xml。
<parent>
<artifactId>parent_project</artifactId>
<groupId>com.mydomain.ge</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
...
<dependencies>
<dependency>
<groupId>com.mydomain.ge</groupId>
<artifactId>child_project_c</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
在父 pom.xml 中:
<modules>
<module>child_project_a</module>
<module>child_project_b</module>
<module>child_project_c</module>
</modules>
所以现在在 Eclipse 中,说项目 A 中的所有导入语句都是从项目 c 导入的:
package com.skillkash.ge.api;
import com.skillkash.ge.dao.AlreadyExistsException;
这给出了:
The import com.skillkash.ge.dao.AlreadyExistsException cannot be resolved.
我尝试了以下操作:
- 对所有孩子和父母进行 maven clean (使用右键单击-> run as-> maven clen。
- 对所有项目做一个maven更新依赖
- 在每个项目上做一个 Maven 包。
- 在所有项目上执行 m2 maven->“更新项目配置”。
- 重启日食。
- 重新启动计算机。
注意 1,在 eclipse 中,我有 4 个单独的项目,每个孩子一个,一个给父母。三个子项目也被签入SVN,但我无法轻松签入父项目,因为它下面有子项目文件夹。
注意 2,我对 ant 了解很多,但我是 maven 的菜鸟,但到目前为止还没有遇到任何问题。例如,我不知道 maven 是否告诉 eclipse 使用依赖项目的源代码,或者它是否必须不断地将 jar 编译到本地 m2 存储库中,并且依赖项目使用它。
注意 3,所有其他(外部)依赖都可以。
注意 4,我检查了“解决工作区项目的依赖关系”是否已选中。
注 5,在 ecipse java 构建路径对话框中,它所依赖的对等项目似乎不在“源”、“项目”或“库”选项卡中。库有一个“maven 依赖”子树,但在树下只是像 log4j 这样的外部 jar。