使用maven tycho插件创建eclipse p2存储库时出现问题

时间:2016-04-04 14:08:59

标签: maven tycho

项目结构

com.abc.parent - 父pom     包含模块所需的所有插件。和模块执行列表。

com.abc.p2 - 主P2项目 - eclipse存储库     包含category.xml文件,其中包含与下面提到的eclipse插件相关的信息。

com.abc.common - eclipse插件

com.abc.person - eclipse插件

我们想要实现的目标

我们是第一次为这些项目介绍Maven。我们想使用Maven创建一个P2存储库(主要是使用maven tycho插件或任何其他标准可用插件)。此外,我们希望将此存储库发布到站点位置。

我们到目前为止尝试了什么

案例1:         方法 - 我们使用Maven Tycho插件并将包装添加为com.abc.p2项目的“eclipse-repository”。                     我们在pom.xml文件中有以下插件                     我们正在使用Maven tycho插件版本 - 0.24.0                     Maven tycho插件。 maven-p2-repository,tycho-packaging插件,maven-osgi-plugin

    Errors    - 
                [ERROR]     Unknown packaging: eclipse-repository @ line 6, column 14
                [ERROR]
                [ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
                ch.
                [ERROR] Re-run Maven using the -X switch to enable full debug logging.
                [ERROR]
                [ERROR] For more information about the errors and possible solutions, please rea
                d the following articles:
                [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildin
                gException

案例2:         方法 - 我们使用Maven-p2-plugin来创建P2存储库。

    Errors   - 
                We were able to generate the P2-repository structure in the target folder of the master project, , but it failed to package all the dependent modules in the p2-repository.

后续步骤建议

如果我们走在正确的轨道上以实现我们的目标,请您协助并建议。如果我的方法需要进行任何更改,还有更多其他要实施的内容,请告诉我。

2 个答案:

答案 0 :(得分:0)

要使tycho工作,您需要在项目根目录(根pom.xml所在的位置)的extensions.xml文件夹中有一个.mvn文件,其中包含以下内容:

<extensions>
<extension>
    <groupId>org.eclipse.tycho.extras</groupId>
    <artifactId>tycho-pomless</artifactId>
    <version>0.26.0</version>
</extension></extensions>

正如您在优秀的Vogella tutorial

中所看到的那样

答案 1 :(得分:0)

我建议使用tycho-p2-repository插件。

在案例1中,maven存储库插件不知道包装&#34; eclipse-repository&#34;因为包装是由tycho定义的。我建议简单地将maven-packaging插件从你的pom中取出,让tycho应用它的默认值。

一个有用的提示:Tycho不包括所有依赖项,即使这是正常和期望的maven行为。正如maven没有&#34;看到&#34; tycho(so manifest-derived)依赖项,它们不包括在内。

您可以通过设置为true来覆盖此行为:

<plugin>
 <groupId>org.eclipse.tycho</groupId>
 <artifactId>tycho-p2-repository-plugin</artifactId>
 <version>${tycho-version}</version>
 <configuration>
    <includeAllDependencies>true</includeAllDependencies>
 </configuration>
</plugin>