【问题标题】:Creating Eclipse plugins from existing jars in an automated build在自动构建中从现有 jar 中创建 Eclipse 插件
【发布时间】:2023-03-18 16:35:01
【问题描述】:

我想让我的 Eclipse RCP 插件的构建过程完全自动化。它有一些第三方 jar 依赖项(可从 Maven 存储库获得),它们不作为 OSGi 包分发,目前我使用“现有 JAR 档案中的 Eclipse 插件”向导手动转换它们。 PDEBuild 或 Maven/Tycho(或者其他一些构建系统)可以作为构建的一个步骤来完成吗?

【问题讨论】:

    标签: eclipse-plugin build-automation eclipse-pde tycho


    【解决方案1】:

    Peter Tillemans 在this post 中提到了PAX wrap jar 命令

    来自 Apache Felix 的 Maven bundle plugin 也值得一看。

    也许来自 SpringSource 的 Bundlor tool 也可以处理从 jar 中创建 osgi 包。

    【讨论】:

    【解决方案2】:

    查看我开发的 p2-maven-plugin。这是一个开源的、社区友好的插件,可以处理:

    • 不是 OSGi 包的 jar 包(完全可自定义)
    • 生成一个功能齐全的 p2 更新站点,可以在 Eclipse PDE 中使用
    • 相应源包的生成(它为所有包生成源包)

    详细信息和文档可以在这里找到:http://projects.reficio.org/p2-maven-plugin/manual.html

    示例用法:

    <plugin>
        <groupId>org.reficio</groupId>
        <artifactId>p2-maven-plugin</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <executions>
            <execution>
                <id>default-cli</id>
                <configuration>
                    <artifacts>
                        <!-- specify your depencies here -->
                        <!-- groupId:artifactId:version -->
                        <artifact><id>commons-io:commons-io:2.1</id></artifact>
                        <artifact><id>commons-lang:commons-lang:2.4</id></artifact>
                        <artifact><id>commons-lang:commons-lang:2.5</id></artifact>
                        <artifact><id>commons-lang:commons-lang:2.6</id></artifact>
                        <artifact><id>org.apache.commons:commons-lang3:3.1</id></artifact>
                    </artifacts>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    【讨论】:

      【解决方案3】:

      查看第三方 jar 与其捆绑的等效项之间的区别。它只是一个额外的 plugin.xml 和清单中的一些额外行。

      编写自己的代码来打包 jar。

      【讨论】:

      • 我不同意:在大多数情况下,为 Java 库编写正确的 OSGi 清单很难。
      猜你喜欢
      • 2020-05-12
      • 2016-09-28
      • 2010-11-06
      • 2015-06-12
      • 2015-08-01
      • 1970-01-01
      • 2020-05-07
      • 2012-07-10
      • 2013-07-19
      相关资源
      最近更新 更多