在新的Eclipse应用程序

时间:2016-05-04 12:59:50

标签: java eclipse maven plugins eclipse-pde

我现在试图解决这个问题大约一个星期,所以我会非常感激任何帮助。 我正在开发一个Eclipse插件。我需要在我的代码中读取pom.xml文件。要做到这一点,我需要三个maven依赖项。 该项目创建为插件项目,然后使用m2eclipse转换为Maven项目。这是我的POM:

<properties>
<tycho-version>0.25.0</tycho-version>

<manifest-location>META-INF</manifest-location>

<name>${project.name}</name>
<version>${project.version}</version>
</properties>

<repositories>
  <repository>
      <id>eclipse-mars</id>
      <layout>p2</layout>
      <url>http://download.eclipse.org/releases/mars</url>
   </repository>
</repositories>

<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
    </plugin>
</plugins>
</build>
<dependencies>
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-model</artifactId>
    <version>3.3.9</version>
</dependency>
<dependency>
    <groupId>org.codehaus.plexus</groupId>
    <artifactId>plexus-utils</artifactId>
    <version>3.0.22</version>
</dependency>
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>3.3.9</version>
</dependency>
</dependencies>
</project>

现在我运行新的Eclipse应用程序来测试插件。它抛出一个异常:ava.lang.NoClassDefFoundError:org / apache / maven / model / io / xpp3 / MavenXpp3Reader

Apache HttpClient与Maven依赖关系相同。为此,我能够通过导入一堆org.apache.http包解决它。 我也试过了this没有帮助。 这真的让我感到困惑,因为在所有的文章和教程中都应该有用。(m2eclipse自动管理maven依赖)。

1 个答案:

答案 0 :(得分:0)

我不熟悉Maven,但作为Eclipse插件(osgi包),为了在运行时访问该类,您需要为提供这些类的包或包添加依赖项。

这是在带有Import-PackageRequire-Bundle清单标头的插件/ META-INF / MANIFEST.MF文件中完成的。我不知道maven / tycho是否会自动为你做这件事。

此外,提供这些类的插件/包需要在其清单中指定Export-Package