Maven项目结构

时间:2012-12-07 02:10:02

标签: maven tycho

在svn存储库中,我有一个文件夹'product',下面是我的所有Eclipse插件和功能,与这些文件并行存在父POM。当我在Jenkins中构建时,此设置很有效,我只需检查'product'并安装pom.xml。但是,我无法弄清楚这个设置在Eclipse工作区中是如何工作的?我无法将pom.xml本身检入工作空间,如果我这样做,我需要将它作为单个文件检查出来,这个项目会驱动父POM的路径。我该如何查看并构建此类设置?

另外,我是否需要在插件中定义父POM的relativePath?我发现如果我省略它,那么我会得到关于路径丢失的错误。

总结一下,我的svn存储库结构是这样的:

  • 回购/
    • 躯干/
      • product< - maven project(将.project设置为maven nature的文件夹)
        • pluginA
        • pluginB
        • featureA
        • 的pom.xml
        • 的.project

2 个答案:

答案 0 :(得分:0)

我认为你有两个选择:

  1. 将您的父POM部署到本地可用的存储库,例如您公司的Nexus服务器?这将适用于所有产品和所有同事。

  2. 重新构建项目以使其看起来更像Maven,例如

    |-- plugin1
       |-- pom.xml
       |-- ....
    |-- plugin2...
    |-- feature1...
    |-- ...
    pom.xml  <-- parent POM
    

    从长远来看,这第二个选项可能更好,否则你的Jenkins服务器会依赖你记住在本地安装更新的父POM,而不是仅仅从svn中提取它。

答案 1 :(得分:0)

如果您使用m2eclipse(例如,可从Juno站点获得),则可以将任何Maven项目结构导入Eclipse。在您的情况下,产品文件夹将作为Eclipse项目以及各个功能和包进行导入。

<relativePath>默认为..,因此如果父POM不在父文件夹中,则需要指定它。如果父POM在本地不可用,您可以将其设置为未定义(例如,通过空<relativePath/>标记)。在这种情况下,Maven将始终从本地Maven存储库或配置的远程(Maven)存储库中解析父POM。