我现在试图解决这个问题大约一个星期,所以我会非常感激任何帮助。 我正在开发一个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依赖)。
答案 0 :(得分:0)
我不熟悉Maven,但作为Eclipse插件(osgi包),为了在运行时访问该类,您需要为提供这些类的包或包添加依赖项。
这是在带有Import-Package
或Require-Bundle
清单标头的插件/ META-INF / MANIFEST.MF文件中完成的。我不知道maven / tycho是否会自动为你做这件事。
此外,提供这些类的插件/包需要在其清单中指定Export-Package
。