具有第三方库的 Maven 依赖项的 Eclipse 插件

Eclipse plugin with Maven dependencies for third party libraries

我正在转换 Subclipse 以使用 Eclipse Tycho 和 Maven 进行构建。

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

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

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

谢谢

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

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

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

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

只需将插件添加到 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>

引用 link here.