mvn eclipse:来自父POM.xml的eclipse

时间:2014-01-23 22:39:40

标签: eclipse maven-2

我正在开发一个包含许多模块的项目。我想有一个命令来构建每个模块并生成Eclipse配置文件,但是当我在父pom上运行mvn eclipse:eclipse时,Eclipse没有看到依赖项并且给我这个错误:'module2' is missing required Java project: 'module1'。当我在模块的文件夹而不是父文件夹中运行相同的命令时,它可以正常工作。

项目设置如下,其中module2依赖于模块1。

.
 |-- module1
 |   `-- pom.xml
 |-- module2
 |   `-- pom.xml
 `-- pom.xml

这是我在父文件夹中运行mvn eclipse:eclipse与模块文件夹时的.project和.classpath的比较:

$ diff module_project parent_project
5c5,10
<   <projects/>
---
>   <projects>
>     <project>module1</project>
>   </projects>

$ diff module_classpath parent_classpath
15c15
<   <classpathentry kind="var" path="M2_REPO/path/to/module1/module1-0.1.jar"/>
---
>   <classpathentry kind="src" path="/module1"/>

如果不单独在每个文件夹上运行命令,如何使其正常工作?

顺便说一下,这是我正在使用的版本号。 Eclipse和maven都是在Ubuntu 13.10上使用apt-get安装的。

Eclipse:
Version: 3.8.1
Build id: debbuild

Maven:
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-15-generic", arch: "amd64", family: "unix"

1 个答案:

答案 0 :(得分:0)

如果从父文件夹运行eclipse:eclipse命令,则需要打开两个项目'module1'&amp; 'module2'在同一个工作区中,以便它可以工作。

在第一种情况下:

<classpathentry kind="var" path="M2_REPO/path/to/module1/module1-0.1.jar"/>

如果你想从eclipse运行你的项目'module2',它将在存储库中查找它的依赖'module1',这意味着你在'module1'中所做的任何更改都不可用于项目模块2,直到你安装它在存储库中。

在第二种情况下:

<classpathentry kind="src" path="/module1"/>

您对项目模块1所做的任何更改都将立即用于项目模块2,因为这两个项目直接链接在同一工作区中。