如何将JDT添加为Maven依赖项?

Jef*_*rey 8 java eclipse maven eclipse-jdt

我正在尝试创建一个依赖于JDT核心的项目.我正在使用Maven中心的条目,直到我意识到它们已经过时了几年.经过一番探索后,我遇到了https://repo.eclipse.org.我找到了我需要的存储库并添加了它:

<repository>
    <id>eclipse</id>
    <name>Eclipse Repository</name>
    <url>https://repo.eclipse.org/content/groups/eclipse/</url>
</repository>
...
<dependency>
    <groupId>org.eclipse.jdt</groupId>
    <artifactId>org.eclipse.jdt.core</artifactId>
    <version>3.10.0.v20140316-0146</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但后来我开始收到错误:

该类型org.eclipse.core.runtime.IProgressMonitor无法解决.它是从所需的.class文件间接引用的

我设法在其中一个Nexus存储库中找到了类型并添加了它:

<repository>
    <id>eclipse-acceleo</id>
    <name>Eclipse Repository</name>
    <url>https://repo.eclipse.org/content/groups/acceleo/</url>
</repository>
...
<dependency>
    <groupId>org.eclipse.equinox</groupId>
    <artifactId>org.eclipse.equinox.common</artifactId>
    <version>3.6.200.v20130402-1505</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

现在我收到了错误

该类型org.eclipse.core.runtime.Plugin无法解决.它是从所需的.class文件间接引用的

我无法在任何Nexus存储库中找到该类.org.eclipse.jdt.core.JavaCore是引用的类org.eclipse.core.runtime.Plugin.

1.我需要添加哪个依赖项org.eclipse.core.runtime.Plugin
2.有没有更好的方法将JDT作为Maven中的依赖项包含在内?

/ E1

我在http://grepcode.comorg.eclipse.core.runtime.Plugin的帮助下找到了.这一次,最新的依赖在Maven Central中(而不是在Eclipse的Nexus repo中):

<dependency>
    <groupId>org.eclipse.core</groupId>
    <artifactId>runtime</artifactId>
    <version>3.9.100-v20131218-1515</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

现在当我尝试运行我的测试时,我得到了以下异常:

java.lang.NoClassDefFoundError: org/eclipse/core/resources/IResource
    at org.eclipse.jdt.core.dom.ASTParser.<init>(ASTParser.java:177)
    at org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:126)
    .
    .
    .
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.resources.IResource
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 30 more
Run Code Online (Sandbox Code Playgroud)

此时我正在考虑下载完整的JAR并将其添加为系统依赖项.有没有更好的方法将JDT添加为Maven依赖项?

Jmi*_*ini 7

Eclipse JDT 现在可在 maven central 上使用,使用一种新方法来发布工件。对于最终用户,不再需要任何解决方法,poms 是用户友好的(简单的版本号、依赖项的标准 maven 元数据、源工件、第 3 方依赖项......)。

只需将其添加到您的 pom 中:

<dependency>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.core</artifactId>
  <version>3.12.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在此处查看完整示例。


Jef*_*rey 6

临时工作直到找到更好的解决方案(Maven中心的所有依赖项):

<dependency>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>org.eclipse.jdt.core</artifactId>
    <version>3.9.1.v20130905-0837</version>
</dependency>
<dependency>
    <groupId>org.eclipse.core</groupId>
    <artifactId>runtime</artifactId>
    <version>3.9.100-v20131218-1515</version>
</dependency>
<dependency>
    <groupId>org.eclipse.birt.runtime</groupId>
    <artifactId>org.eclipse.core.resources</artifactId>
    <version>3.8.101.v20130717-0806</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)