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

第三方库的带有Maven依赖项的Eclipse插件,eclipse,maven,tycho,Eclipse,Maven,Tycho,我正在将Subclipse转换为使用Eclipse Tycho和Maven构建 Subclipse依赖于少数非Eclipse插件的第三方JAR文件,因此在任何p2存储库中都不存在。目前,我只是把它们包含在插件的lib文件夹中 因为这些JAR文件确实存在于Maven中,所以我希望通过将插件转换为使用Maven构建,我可以使用Maven依赖项。瞧,这个插件会有一个pom.xml,我使用Maven依赖项获取并包含必须包含在插件中的第三方jar。基本上,它将自动刷新插件库文件夹中包含的内容 这可能吗?我

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

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

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

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


谢谢

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

  • 项目->清洁
  • 右键单击project:Maven->Update dependencies
  • 右键单击project:Maven->更新项目配置

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

  • 项目->清洁
  • 右键单击project:Maven->Update dependencies
  • 右键单击project:Maven->更新项目配置
要在biuild时将普通(无OSGi元数据)jar文件添加到文件夹中,您可以指定
maven依赖插件的
来获取它们。但是,每当版本更改时,它需要更新MANIFEST.MF
Bundle Classpath
指令

通常,最好是寻找支持OSGi的jar,或者额外努力将现有的LIB打包为OSGi捆绑包/p2工件,如Eclipse Orbit或JBoss Tools,这样做。

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


通常,最好是寻找支持OSGi的JAR,或者额外努力将现有的LIB打包为OSGi捆绑包/p2工件,如Eclipse Orbit或JBoss Tools Loce。

只需将插件添加到pom依赖项中,并在
目标平台配置
的配置中包含条目
就可以了工作

<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>

org.eclipse.tycho

.

只需将插件添加到pom依赖项中,并在
目标平台配置
的配置中包含条目
考虑
,就可以工作了

<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>

org.eclipse.tycho

.

在这种情况下,我维护第三方库并发布工件。让Maven也为每个jar构建一个OSGI工件并同时发布是否容易?有什么提示吗?您必须使用
maven bundle插件
,这样它会根据您使用的软件包为您生成MANIFEST.MF。然后您可以使用Tycho中的Maven OSGi捆绑包,如我在本例中所述,我维护第三方库并发布工件。让Maven也为每个jar构建一个OSGI工件并同时发布是否容易?有什么提示吗?您必须使用
maven bundle插件
,这样它会根据您使用的软件包为您生成MANIFEST.MF。然后您可以使用Tycho中的Maven OSGi捆绑包,如中所述