构建脱机“的解决方案”;“复合”;带有类别的Eclipse更新站点
这将是一个相当长的问题,所以请容忍我。我正在寻找一种解决方案,以构建在脱机开发环境中使用的自定义更新站点(或p2存储库),并考虑以下事项:构建脱机“的解决方案”;“复合”;带有类别的Eclipse更新站点,eclipse,p2,tycho,update-site,Eclipse,P2,Tycho,Update Site,这将是一个相当长的问题,所以请容忍我。我正在寻找一种解决方案,以构建在脱机开发环境中使用的自定义更新站点(或p2存储库),并考虑以下事项: 每个站点将包含第三方和定制Eclipse插件的混合 我想为每个IDE配置创建一个站点。e、 使用Helios的开发者只需要添加一个包含m2e、Subversive和CustomPluginA的更新站点。使用FlashBuilder的开发者可以添加一个包含m2e和CustomPluginB的不同站点 因为开发是离线的,所以我们现在。自定义站点需要从这些副本中
- 每个站点将包含第三方和定制Eclipse插件的混合
- 我想为每个IDE配置创建一个站点。e、 使用Helios的开发者只需要添加一个包含m2e、Subversive和CustomPluginA的更新站点。使用FlashBuilder的开发者可以添加一个包含m2e和CustomPluginB的不同站点
- 因为开发是离线的,所以我们现在。自定义站点需要从这些副本中提取插件
- 我们的定制Eclipse插件目前是用Jenkins上的Maven+Tycho构建的。如果可能的话,我想配置更新站点,以便与Jenkins一起自动构建。然后,如果自定义插件被更新,它可以触发必要的更新站点构建
- 更新站点中的自定义类别会很好
感谢您抽出时间阅读这些内容。如果有人真的能解决我所有的担忧,那将是令人惊讶的,我可能不得不在这个问题上加上一个悬赏。我将建议两种方法,一种是使用第谷,另一种是使用B3聚合器 1) 第谷 步骤1:使用PDE内置工具定义使用现有本地更新站点的目标平台,并将其另存为.target文件。然后,您可以在生成中引用此文件,如下所示:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version> <configuration>
<resolver>p2</resolver>
<target>
<artifact>
<groupId>org.eclipse.viatra2</groupId>
<artifactId>«project name where the target file resides»</artifactId>
<version>«artifact version»</version>
<classifier>«target filename without extension»</classifier>
</artifact>
</target>
<ignoreTychoRepositories>true</ignoreTychoRepositories>
</configuration>
</plugin>
org.eclipse.tycho
. 使用聚合器定义一个使用现有更新站点的模型,然后使用聚合器执行该模型,结果就是一个更新站点。在后一种情况下,您可以构建引用其他更新站点的复合更新站点,也可以从原始数据创建独立副本。本手册包含一个简单的例子,很容易使用
3) 比较
在B3中,定义镜像逻辑更为简单,因为模型仅包含镜像描述,并且还允许创建只引用现有站点的复合更新站点。然而,如果你想做任何事情除了更新网站建设,那么它是很难做到的。此外,它可以在headless构建中执行(例如来自Jenkins),但它需要安装headless Eclipse实例。文档包含了详细信息,但是工具不像Maven/Tycho那样独立
在Tycho的情况下,很难看到生成的更新站点的结构,但是,生成的构建更具可扩展性(例如,您可以简单地使用相同类型的构建添加您自己的功能),并且要进行构建,您只需要安装Maven
总之,这两种工具可能都适合您的需要—您需要在您的案例中评估它们的优缺点
<packaging>eclipse-repository</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-publisher-plugin</artifactId>
<version>${tycho.version}</version>
<configuration>
<publishArtifacts>true</publishArtifacts>
</configuration>
</plugin>
</plugins>
</build>