【问题标题】:Eclipse plugin with Maven dependencies for third party librariesEclipse 插件与第三方库的 Maven 依赖项
【发布时间】:2017-01-13 05:38:43
【问题描述】:

我正在将 Subclipse 转换为使用 Eclipse Tycho 和 Maven 构建。

Subclipse 依赖于一些不是 Eclipse 插件的第三方 JAR 文件,因此在任何 p2 存储库中都不存在。目前,我只是将它们包含在插件的 lib 文件夹中。

由于这些 JAR 文件确实存在于 Maven 中,我希望通过将插件转换为使用 Maven 构建,我可以使用 Maven 依赖项。 IOW,该插件将有一个 pom.xml,我在其中使用 Maven 依赖项来抓取并包含必须包含在插件中的第三方 jar。基本上,它只会自动刷新我在插件的 lib 文件夹中包含的内容。

这可能吗?我尝试按照上面所说的进行构建,但没有看到 Maven/Tycho 试图获取依赖项的迹象。我想这是因为当包装是 eclipse-plugin 时,它只查看 Eclipse 配置文件中的依赖信息。

谢谢

【问题讨论】:

    标签: eclipse maven tycho


    【解决方案1】:

    要在biuild 时将普通(没有OSGi 元数据)jar 文件添加到您的文件夹中,您可以指定maven-dependency-plugin 中的<execution> 来获取它们。但是,每当版本更改时,它都需要更新您的 MANIFEST.MF Bundle-Classpath 指令。

    通常最好寻找支持 OSGi 的 jar,或者花额外的精力将现有的库打包为 OSGi 包/p2 工件,如 Eclipse Orbit 或 JBoss Tools Locus 所做的。

    【讨论】:

    • 我就是这种情况,我维护第三方库并发布工件。让 Maven 也为每个 jar 构建一个 OSGI 工件并同时发布是否容易?有什么指点吗?
    • 您必须使用maven-bundle-plugin,因此它会根据您使用的包为您生成一个 MANIFEST.MF。然后您可以按照wiki.eclipse.org/Tycho/…中的说明在 Tycho 中使用 Maven OSGi 包
    【解决方案2】:

    在将依赖项添加到 pom.xml 文件后,您是否尝试过执行以下操作?

    • 项目->清理
    • 右键项目:Maven->更新依赖项
    • 项目右键:Maven->更新项目配置

    【讨论】:

      【解决方案3】:

      只需将插件添加到 pom 依赖项并在 target-platform-configuration 的配置中包含条目 <pomDependencies>consider</pomDependencies> 即可。

      <plugins>
          <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>target-platform-configuration</artifactId>
              <version>${tycho.version}</version>
              <configuration>
                  <!-- The configuration to make tycho consider the maven dependencies -->
                  <pomDependencies>consider</pomDependencies> 
                  <!-- other configurations -->
              </configuartion>
          </plugin>
          <!-- other plugins-->
      </plugins>
      <dependencies>
          <!-- An example third-party bundle (plugin) present in maven repository-->
          <dependency>
              <groupId>org.apache.felix</groupId>
              <artifactId>org.apache.felix.gogo.shell</artifactId>
              <version>1.1.0</version>
          </dependency>
      </dependencies>
      

      参考链接here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-20
        • 1970-01-01
        • 2018-12-09
        • 1970-01-01
        • 2012-11-28
        • 1970-01-01
        • 1970-01-01
        • 2020-09-14
        相关资源
        最近更新 更多