m2eclipse子项目突然不见彼此
题
不是一个很好的标题的,我会尝试和解释。
这已经工作了几个月,那么今天由于某种未知的原因,日食不能解决任何的进口的兄弟姐妹(对项目),当什么都没有改变(真的!).没有食或蚀插件的更新,没有源代码的更改,没有配置的变化。
我有一个相当标准项目结构:
parent_project -- clild_project_a ---- pom.xml -- clild_project_b ---- pom.xml -- child_project_c ---- pom.xml -- pom.xml (for parent).
现在,这两个项目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>
所以现在日食时,所有进口发言说,项目的一个进口从项目c:
package com.skillkash.ge.api;
import com.skillkash.ge.dao.AlreadyExistsException;
这给:
The import com.skillkash.ge.dao.AlreadyExistsException cannot be resolved.
我试过了以下:
- 做一家干净的(使用正确的点击->运行为>家克伦上的所有儿童和父母。
- 做一个家更依赖于所有项目
- 做一个家包在各个项目。
- 做m2玛文->"更新项目的配置"的所有项目。
- 重新启动蚀。
- 重新启动的计算机。
注1, 在蚀我有4个单独项目,每个儿童,另一个用于父母。这三个儿童项目也检查进入SVN,但是我不能容易地签父项目,因为它有儿童的项目文件夹它的下面。
注2, 我知道很多关于蚂蚁,而是一个菜鸟在家,但还没有任何问题,直到现在。例如我不知道如果专家告诉蚀使用的来源depentant项目,或者如果它已经汇编的罐子不断进入当地m2的储存库,与受扶养项目使用。
注3, 所有其他(外部)的依赖性是确定。
注4, ,我已经检查过那个"解决依赖关系从工作空间项目"检查。
附注5, 在ecipse java建立的道路的对话,该等项目上,它是依赖于似乎不是在"源","项目"或"图书馆"的标签。图书馆有一个"家depedencies"子树,但是在我的家乡有只是外部的罐子就像log4j.
解决方案
它的工作如果你做一个 mvn clean install
在父母双从命令行,而不是在日食?将规则出两件事情:
- 它是否是一个日食的问题
- 无论是或不是你的问题要与您使用
package
而不是的install
我注意到你在使用家包的目标。一般来说,应该总是这样 mvm clean install
而不是的 mvn clean package
工作上你的当地机。如果你不使用安装的目标,然后项目C永远不被安装到你的地方储存库(通过默认在$HOME/.m2/存储库或该当量在Windows),因此不可能被引用的项目A和B。
如果做不到这一点,进去的你$HOME/.m2/存储库,并检查实际安装。罐/.pom,对项目c。这是目录的道路将对应于它的家坐标(例如com/程序/ge/child_project_c/0.0.1-快照)。确保罐子里有课,你期待它,并确保系统安装在它旁边看起来像一个在你源库。
其他提示
无法作出评论,但不应m2eclipse解决工作空间项目,而不是将它们安装当地的储存库,并解决他们从那里?
我发现,这会为了寻求简便是很挑剔的关于什么是写在 build.properties
!我面临同样的问题,不得不照顾
- 既
source.. = src/
和output.. = bin/
是正确的输入。 bin.includes = META-INF,/
和.
是正确的输入。
之后我修好这个,会为了寻求简便清理安装所做的工作就像一个魅力!@惠利,谢谢你的提示 $HOME/.m2/repository
它实际上给我看的文件是真的丢失在罐子里,由于前述原因!