Eclipse P2主管,负责将一个构建包含到其他项目更新站点中

Eclipse P2主管,负责将一个构建包含到其他项目更新站点中,eclipse,jenkins,command-line,installation,p2-director,Eclipse,Jenkins,Command Line,Installation,P2 Director,我有两个SVN项目存储库,比如Project1和Project2Project1是使用Project2的主要应用程序。我试图实现的是,每当使用Jenkins构建Project1时,它应该包括Project2的更新站点,并自动构建它并在Project1中使用 Project2包含6个项目和一个更新站点(包括artifacts.jar、content.jar.feature/、plugins/、site.xml) 我怎样才能做到这一点?是否可以使用eclipse P2控制器?如果是的话,怎么办? 如

我有两个
SVN
项目存储库,比如
Project1
Project2
Project1
是使用
Project2
的主要应用程序。我试图实现的是,每当使用
Jenkins
构建
Project1
时,它应该包括
Project2
的更新站点,并自动构建它并在
Project1
中使用

Project2包含6个项目和一个更新站点(包括
artifacts.jar、content.jar.feature/、plugins/、site.xml

我怎样才能做到这一点?是否可以使用eclipse P2控制器?如果是的话,怎么办? 如何在
Project1
中自动合并
Project2
更新站点

更新

简而言之,在
Project1
中,在哪里包括
Project2
更新站点,以便无论何时构建
Project1
它都应该使用更新站点自动安装
Project2

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

给定链接的内容:
artifacts.jar,content.jar。功能/,插件/,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

->创建了一个批处理文件,其中包含\Project1\eclisec.exe中的
\Path\u-application org.eclipse.equinox.p2.director-repository http:/pathto/repository/updatesite/-installIU-featurename-destination\Path\u-in\Project1\eclipse

此批处理文件正在
Project1
中成功安装
Project2


我试图实现的是再次自动化这些步骤,即一旦我使用
Jenkins
完成构建
Project1
,它就会触发Jenkins发出的上述命令(可能需要在命令中进行一些修改),将
Project2
包含在
Project1
中。这可能吗

您的Jenkins设置应该有两个作业。比如说,詹金斯作业A构建项目1,詹金斯作业B构建项目2

(1) 安排工作

  • 构建项目1
(2) 将作业B设置为

  • 构建项目2
  • 部署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>

项目2-p2repo
文件:/repo/project2/p2
p2
[...] 
(4) 在Jenkins作业a中配置生成触发器:

  • 在生成其他项目后选择“生成”
  • 在要观看的项目中,选择Jenkins作业B
完成了

结果将是:

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

我相信您正在使用maven构建项目

  • 构建项目2

  • 创建p2存储库: 您可以使用maven插件创建p2存储库

  • 将其上传到工件库:这里我们使用它作为工件库。按照前面提到的设置Nexus下的所有10个步骤进行操作

  • 我已经创建了一个参考pom.xml,它可以创建p2存储库并将其上载到p2存储库。您可以看到它

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

  • 谢谢,但如何使用p2 director实现上述过程请在此链接中描述:我不确定我是否理解您使用p2 director试图实现的目标。据我所知,您有从Project1到Project2的引用,需要在构建期间解决。为此,在Project1构建期间参考Project2存储库就足够了。我想你是用第谷建造的吧?请解释您希望P2 director用于什么。可能您没有定义任何功能。您可以使用此命令下载所有功能eclipse.exe-application org.eclipse.equinox.P2.artifact.repository.mirror应用程序-source http:/pathto/repository/updatesite/-destinationfile:///d:/dev/artifactLocalRepository/ -详细-信号错误不明白为什么您试图安装Project2而不是在构建过程中包含它?@not2savvy我们没有使用Maven…所以我认为剩下的唯一解决方案是使用p2 director来安装…如果您没有使用Maven,请解释您运行构建时使用的是什么,所以我们不必猜测。