【发布时间】:2013-05-24 02:05:23
【问题描述】:
我正在尝试编写自定义 p2 配置操作以在安装功能时执行我自己的代码。使用更新管理器的 installHandler 这样做很容易,但对于 p2,网络上绝对没有关于这个主题的文档,大多数时候 eclispe 只是默默地忽略我(即使在日志中),唯一的例子 I’ve found 是不工作。
所以,如果有人能指出一个自定义配置操作的工作示例,那将有助于我理解整个事情。
谢谢。
【问题讨论】:
我正在尝试编写自定义 p2 配置操作以在安装功能时执行我自己的代码。使用更新管理器的 installHandler 这样做很容易,但对于 p2,网络上绝对没有关于这个主题的文档,大多数时候 eclispe 只是默默地忽略我(即使在日志中),唯一的例子 I’ve found 是不工作。
所以,如果有人能指出一个自定义配置操作的工作示例,那将有助于我理解整个事情。
谢谢。
【问题讨论】:
终于,我终于搞定了:
plugin.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.5"?>
<plugin>
<extension point="org.eclipse.equinox.p2.engine.touchpoints" id="example" name="Eclipse Touchpoint">
<touchpoint type="com.company.example.plugin" class="org.eclipse.equinox.internal.p2.touchpoint.eclipse.EclipseTouchpoint" version="1.0"/>
</extension>
<extension point="org.eclipse.equinox.p2.engine.actions">
<action
class="com.company.example.plugin.CustomAction"
name="do_custom_action"
touchpointType="com.company.example.plugin"
touchpointVersion="1.0"
version="1.0">
</action>
</extension>
</plugin>
META-INF\p2.xml:
provides.0.namespace=com.company.example.plugin
provides.0.name=do_custom_action
provides.0.version=1.0
feature.xml:
<?xml version="1.0" encoding="UTF-8"?>
<feature id="com.company.example.feature" label="Maven installer feature" version="2.2.1.qualifier">
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
<license url="http://www.example.com/license">[Enter License Description here.]</license>
<requires>
<import plugin="com.company.example.plugin"/>
</requires>
<plugin
id="com.company.example.plugin"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>
p2.inf:
metaRequirements.0.namespace=com.company.example.plugin
metaRequirements.0.name=do_custom_action
metaRequirements.0.range=1.0
instructions.configure = com.company.example.plugin.do_custom_action();
【讨论】:
如果你想让你的接触点动作起作用,有两种方法,
【讨论】: