4

我们有一个相当大的 Maven2 项目组,其根 POM 文件列出了 10 多个模块和模块使用的许多属性(依赖版本号、插件配置、常见依赖项等)。一些模块,如根项目,是其他模块集的父级。

为了澄清,根项目和所说的父项目被设置为 pom 包装(而不是例如 jar)。

因为不同项目之间有很多依赖关系,所以我喜欢在根项目上使用 mvn eclipse:eclipse,这让我可以随时调试/单步执行任何项目。

但是,使用这种方法,根 POM 本身以及所有其他 pom 打包的项目在 Eclipse 中不可用。所以,如果我想编辑它们,我必须以其他方式打开它们。这变得有点麻烦。

所以,我的问题是:是否有可能以某种方式使 pom 打包的项目在 Eclipse 中可用?如果没有,你有什么技巧可以让我更轻松地处理这些项目吗?

作为记录,我目前使用的是 MyEclipse 7.0。

4

6 回答 6

2

我用 Galileo 和最新版本的 m2eclipse 再次尝试了这个。现在可以直接导入 Maven 项目(无需 mvn eclipse:eclipse),结果证明根 POM 也作为项目导入,这正是我想要的。

于 2009-07-06T06:34:16.230 回答
1

好。很多人通过使父 POM 成为兄弟项目并在根中具有简单的反应器 POM 来做到这一点。然而,这可能会导致网站生成和发布插件出现问题,因为两者都没有像人们希望的那样完全支持这种模式。

我们经常遇到的一个大问题是人们尝试使用 Subclipse 来检查主干,它会在根目录中添加一个 .project 文件,然后阻止导入该级别以下的项目。相反,我们必须到外面检查,然后导入项目。

我听说 Subversive 可能会更好地处理嵌套项目,这确实是这里的问题。除此之外,我在这里没有绝对的解决方案。

于 2008-12-17T17:14:57.430 回答
0

您可以尝试编写一个任务来手动为其目录中的每个 POM 项目创建 .project 文件。不确定具体细节,但您可以生成如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>${project.name}</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
        </buildSpec>
        <natures>
        </natures>
</projectDescription>

在项目的根目录中,应该没问题。

我不确定这样做是否会阻止您将子项目导入 Eclipse(您可能知道 - 您需要先导入所有非 pom 项目,然后为其他项目创建“通用”项目,使用路径匹配mvn结构下的物理路径)。Eclipse 将阻止您在另一个项目中创建一个项目,因此如果它识别出项目层次结构中更高级别的任何内容,您将在过去被引导。

于 2008-12-17T09:37:57.087 回答
0

我设法与有父母的 Maven 项目一起使用codehaus eclipse 插件。该插件有一些缺陷,但总的来说它是维护的,你应该能够相处。

于 2008-12-17T09:47:49.110 回答
0

一般来说,我只需要 eclipse 中可用的父级来添加依赖项并利用 XML 格式。便宜又愉快的方法是创建资源项目并将父pom链接到其中。文件 -> 新建 -> 其他 -> 常规 -> 文件 -> 高级

如果您使用 2.8+ 版本的 eclipse 插件,您可以让它在您的每个子项目中为您生成链接,例如

<plugin>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.8-SNAPSHOT</version>
    <configuration>
        <linkedResources> 
            <linkedResource>
                <name>parent.xml</name> 
                <type>1</type>
                <location>${basedir}/${parent.relativePath}</location> 
            </linkedResource>
        </linkedResources> 
    </configuration>
  </plugin>

尽管您目前需要从 subversion 中检查它并自己构建它,因为它似乎还没有从中央解决。

svn co http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/
cd maven-eclipse-plugin
mvn clean install
于 2009-11-16T21:57:35.643 回答
0

实际上,如果您不想依赖 m2eclipse,那么“正确”的做法是使用平面项目布局(因为问题是 Eclipse 不支持嵌套项目)。

于 2009-11-16T22:10:40.897 回答