0

在 svn 存储库中,我有一个文件夹“产品”,其中包含我所有的 Eclipse 插件和功能,与这些平行的是父 POM。当我在 Jenkins 中构建时,此设置运行良好,我只需检查“产品”并安装 pom.xml。但是,我无法弄清楚这个设置在 Eclipse 工作区中是如何工作的?我无法将 pom.xml 本身检出到工作区中,如果需要,我需要将其作为单个文件检出到项目下,该项目会阻止父 POM 的路径。我应该如何检查和构建这样的设置?

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

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

  • 回购/
    • 树干/
      • 产品 <- maven 项目(将 .project 设置为 maven 性质的文件夹)
        • 插件A
        • 插件B
        • 特征A
        • pom.xml
        • 。项目
4

2 回答 2

0

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

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

于 2012-12-07T09:56:35.830 回答
0

我认为你有两个选择:

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

  2. 重组您的项目,使其看起来更像 Maven,例如

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

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

于 2012-12-07T08:18:32.573 回答