2008-12-17 81 views
4

我们有一个相当大的Maven2项目组,其中一个根POM文件列出了10多个模块和模块使用的很多属性(依赖版本号,插件配置,通用依赖关系等)。一些模块像根项目一样,是其他模块组的父母。使用多模块Maven项目,是否可以在Eclipse中使我的根(pom-packaged)项目可用?

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

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

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

所以,我的问题是:是否有可能在Eclipse中以某种方式使pom打包项目可用?如果没有,您是否有任何提示可以让我对这些项目的工作更轻松?

为了记录,我正在使用MyEclipse 7.0。

+0

如果我将此作为回应说明,我只会被降级:netbeans和intellij Idea现在都具有*功能* maven集成,因此您可以直接从根目录打开项目。 – krosenvold 2008-12-17 09:16:22

+0

如果你把它放在一个答案中,我会upvote :) – 2008-12-17 11:22:34

回答

2

我再次尝试这个,加利略和最新版本的m2eclipse。现在可以直接导入Maven项目(不使用mvn eclipse:eclipse),并且事实证明,根POM也作为项目导入,这是我想要的。

0

您可以尝试编写任务以手动为其目录中的每个POM项目创建.project文件。不确定的具体情况,但你可以产生类似的东西:

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

在项目的根目录,它应该没问题。 (你可能知道 - 你需要先导入你所有的non-pom项目,然后为这个项目创建“general”项目)。其他人,路径与mvn结构下的物理路径匹配)。 Eclipse会阻止你在另一个项目中创建一个项目,所以如果它从项目层次结构中的更高级别识别出任何东西,那么你将会在过去得到启发。

0

我设法与codehaus eclipse plugin一起工作,有父母的maven项目。该插件有一些缺陷,但总体上它保持不变,你应该能够相处。

1

好吧。许多人通过将父母POM作为兄弟姐妹项目并在根中拥有简单的反应器POM来做到这一点。但是,这可能会导致网站生成和发布插件出现问题,因为它们都不支持这种模式。

我们经常遇到的一个大问题是,人们试图使用Subclipse来检查干线,Subclipse会在根目录中添加一个.project文件,从而阻止导入低于该级别的项目。相反,我们必须出去检查,然后导入项目。

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

0

通常我只需要真正需要在eclipse中可用的父项来添加依赖关系并利用XML格式。廉价而愉快的方式是创建资源项目并将父项链接到项目中。如果你使用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> 

虽然你现在需要从颠覆中检查出它,并且自己构建它,因为它似乎并不是从中央解决。

svn co http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/ 
cd maven-eclipse-plugin 
mvn clean install 
0

其实,如果你不希望依赖于m2eclipse的,“正确”的方式做到这一点是使用flat project layout(如问题是,Eclipse不支持嵌套项目)。

相关问题