【问题标题】:tycho to publish p2 site with a history of features for installation第谷发布具有安装功能历史的 p2 站点
【发布时间】:2018-09-06 10:45:29
【问题描述】:

我想问一下如何保存可用插件的历史记录以供使用 tycho 下载。

这是场景:

  1. 我有几个版本的功能(feature.1.0.0、feature.2.0.0 等)正在使用 Eclipse“构建站点”功能构建。
  2. 元数据、content.jar 和 artifacts.jar 是从 Eclipse 通过读取 site.xml 创建的。
  3. 现在我有了 maven tycho 来自动创建 p2 存储库。
  4. 我看到了 tycho 如何使用 category.xml 生成 p2 存储库。
  5. 但我不明白如何包含历史记录,因为 tycho(或者实际上是 tycho 调用的库,internal.p2.director.Projector)不喜欢 category.xml 中的功能历史记录。

当我运行 mvn 包时:



    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:483)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.lang.RuntimeException: No solution found because the problem is unsatisfiable.: [Unable to satisfy dependency from com.myfeature.releng.p2 raw:0.0.0.'SNAPSHOT'/format(n[.n=0;[.n=0;[-S]]]):0.0.0-SNAPSHOT to com.myfeature.plugin.feature.feature.group [13.7.0,13.7.1).; Unable to satisfy dependency from com.myfeature.releng.p2 raw:0.0.0.'SNAPSHOT'/format(n[.n=0;[.n=0;[-S]]]):0.0.0-SNAPSHOT to com.myfeature.plugin.feature.feature.group [13.8.0,13.8.1).; Unable to satisfy dependency from com.myfeature.releng.p2 raw:0.0.0.'SNAPSHOT'/format(n[.n=0;[.n=0;[-S]]]):0.0.0-SNAPSHOT to com.myfeature.feature.group [13.8.1,13.8.2).; Unable to satisfy dependency from com.myfeature.releng.p2 raw:0.0.0.'SNAPSHOT'/format(n[.n=0;[.n=0;[-S]]]):0.0.0-SNAPSHOT to com.myfeature.feature.group [13.8.2,13.8.3).; ]
    at org.eclipse.tycho.p2.util.resolution.AbstractResolutionStrategy.newResolutionException (AbstractResolutionStrategy.java:98)
    at org.eclipse.tycho.p2.util.resolution.ProjectorResolutionStrategy.resolve (ProjectorResolutionStrategy.java:88)
    at org.eclipse.tycho.p2.util.resolution.AbstractResolutionStrategy.resolve (AbstractResolutionStrategy.java:63)
    at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies (P2ResolverImpl.java:166)
    at org.eclipse.tycho.p2.resolver.P2ResolverImpl.resolveDependencies (P2ResolverImpl.java:103)

如何使用 tycho 构建一个生产 p2 站点(具有功能历史)?

我的包结构是基于this fabulous blog

谢谢!

【问题讨论】:

    标签: tycho p2


    【解决方案1】:

    我终于明白了……

    并将所有内容投入生产...

    1. https://eclipse.org/package-drone/
    2. 要安装,https://wiki.eclipse.org/PackageDrone/Installation
    3. 现在它已启动并运行。创建一个可以登录的用户名,而不是 admin。
    4. 登录创建频道,说频道名称是“my_payload”
    5. 在频道内,分配部署组和部署密钥
    6. (最重要)频道必须具备以下几个方面:
      • OSGi
      • P2 存储库
      • P2 解压
      • 哑剧
      • 哈希尔
    7. (必须在#8之前)上传一个category.xml

      <site>
          <description name="my update site" url="http://your-p2-repo/my_channel/">
           My update site
          </description>
          <category-def name="my company's extensions for you" label="my company extension"/>
      </site>
      
    8. 使用 REST 调用上传 tycho 生成的 p2 repo zip。

    9. 请注意,当您在应用程序中从“安装新软件”查询时,该类别会将版本历史合并在一起。 p2 存储库将为您生成元数据。

    希望你能坚持下去!我会在某个时候写一篇关于细节的博客!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 2010-11-06
      相关资源
      最近更新 更多