项目结构
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.
后续步骤建议
如果我们走在正确的轨道上以实现我们的目标,请您协助并建议。如果我的方法需要进行任何更改,还有更多其他要实施的内容,请告诉我。
答案 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>