P2主管将一个构建包含到其他项目更新站点

时间:2017-03-17 07:20:36

标签: eclipse jenkins command-line installation p2-director

我有两个SVN项目资料库说Project1& Project2Project1是使用Project2的主要应用程序。我想要实现的是,只要使用Project1构建Jenkins,它就应该包含Project2的更新网站,并自动构建并在Project1中使用。

Project2包含6个项目&更新站点(由artifacts.jar, content.jar. feature/, plugins/, site.xml组成)。

我怎样才能做到这一点?可以使用eclipse P2 director吗?如果是,那怎么样? 如何在Project2中自动整合Project1更新网站的过程?

更新

简而言之,在Project2中包含Project1更新网站的位置,以便在构建Project1时,它应该使用更新网站自动安装Project2

更新网站:/pathto/repository/updatesite/

给定链接的内容:artifacts.jar, content.jar. feature/, plugins/, site.xml

我正在尝试这个命令:

D:\EclipseCpp\eclipse\eclipsec.exe -application org.eclipse.equinox.p2.director -repository http:/pathto/repository/updatesite//  -installIU featurename -destination D:\EclipseCpp\eclipse\

但它没有说明没有找到任何功能名称。

更新1

到目前为止我取得的成就:

- >使用Jenkins成功构建Project1

- >创建了一个包含\Path_in\Project1\eclipsec.exe -application org.eclipse.equinox.p2.director -repository http:/pathto/repository/updatesite// -installIU featurename -destination \Path_in\Project1\eclipse的批处理文件。

此批处理文件现在已在Project2成功安装Project1

我想要实现的是再次自动化这些步骤,即只要我使用Project1完成构建Jenkins,就应该触发Jenkins的上述命令(可能需要在命令中进行一些修改)在Project2中加入Project1。这可能吗?

2 个答案:

答案 0 :(得分:0)

你的Jenkins设置应该有2个工作。让我们说,Jenkins作业A构建Project1,Jenkins作业B构建Project2。

(1)将作业A设置为

  • 构建Project1

(2)将作业B设置为

  • 构建Project2
  • 部署P2工件,例如到本地目录/repo/project2/p2

(3)在Project1中,一定要将上面的P2目录指定为pom.xml中的一个存储库,如下所示

  <repositories>
    <repository>
      <id>project2-p2repo</id>
      <url>file:/repo/project2/p2</url>
      <layout>p2</layout>
    </repository>
    [...] 
  </repositories>

(4)在Jenkins作业A:

中配置构建触发器
  • 在构建其他项目后选择 Build
  • 要观看的项目中,选择Jenkins作业B

完成。

结果将是:

  • 构建Project1时,它使用P2存储库和Project2 build
  • 的结果
  • 构建Project2时,将使用此Project2构建的新结果触发Project1的构建

答案 1 :(得分:0)

我相信你正在使用maven来建立你的项目

  1. 构建Project2

  2. 创建p2存储库: 您可以使用this maven插件创建p2存储库。

  3. 将其上传到Artifact Repository:我们在这里使用Nexus作为Artifact Repository。按照[{3}}提及的设置Nexus 下的所有 10个步骤进行操作。

  4. 我创建了一个参考pom.xml,它可以创建一个p2存储库并将其上传到p2 repository.you可以看到它here

    1. 在您的projectA中,您可以向目标平台添加功能站点,该站点将指向projectB的p2站点。您可以参考vogella关于Tycho here的文章。