不是一个很好的标题的,我会尝试和解释。

这已经工作了几个月,那么今天由于某种未知的原因,日食不能解决任何的进口的兄弟姐妹(对项目),当什么都没有改变(真的!).没有食或蚀插件的更新,没有源代码的更改,没有配置的变化。

我有一个相当标准项目结构:

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 在父母双从命令行,而不是在日食?将规则出两件事情:

  1. 它是否是一个日食的问题
  2. 无论是或不是你的问题要与您使用 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!我面临同样的问题,不得不照顾

  1. source.. = src/output.. = bin/ 是正确的输入。
  2. bin.includes = META-INF,/. 是正确的输入。

之后我修好这个,会为了寻求简便清理安装所做的工作就像一个魅力!@惠利,谢谢你的提示 $HOME/.m2/repository 它实际上给我看的文件是真的丢失在罐子里,由于前述原因!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top