Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JDT添加为Maven依赖项?_Java_Eclipse_Maven_Eclipse Jdt - Fatal编程技术网

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

Java 如何将JDT添加为Maven依赖项?,java,eclipse,maven,eclipse-jdt,Java,Eclipse,Maven,Eclipse Jdt,我正在尝试创建一个依赖于的项目。我一直在使用Maven central中的条目,直到我意识到它们是。在闲逛了一会儿之后,我发现了。我找到了我需要的存储库并添加了它: <repository> <id>eclipse</id> <name>Eclipse Repository</name> <url>https://repo.eclipse.org/content/groups/eclipse/<

我正在尝试创建一个依赖于的项目。我一直在使用Maven central中的条目,直到我意识到它们是。在闲逛了一会儿之后,我发现了。我找到了我需要的存储库并添加了它:

<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>
<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>
现在我得到了错误

无法解析类型
org.eclipse.core.runtime.Plugin
。它是 从必需的.class文件间接引用

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

一,。我需要添加哪个依赖项才能包括
org.eclipse.core.runtime.Plugin

2.有没有更好的方法将JDT作为依赖项包含在Maven中

/e1

在的帮助下,我找到了org.eclipse.core.runtime.Plugin。这一次,最新的依赖关系位于Maven Central中(而不是Eclipse的Nexus repo中):


org.eclipse.core
运行时
3.9.100-v20131218-1515
现在,当我尝试运行我的测试时,到处都会出现以下异常:

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
java.lang.NoClassDefFoundError:org/eclipse/core/resources/IResource
位于org.eclipse.jdt.core.dom.ASTParser(ASTParser.java:177)
位于org.eclipse.jdt.core.dom.ASTParser.newParser(ASTParser.java:126)
.
.
.
原因:java.lang.ClassNotFoundException:org.eclipse.core.resources.IResource
在java.net.URLClassLoader$1.run(URLClassLoader.java:372)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:360)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 30多

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

找到更好的解决方案之前的临时解决方案(Maven central中的所有依赖项):


org.eclipse.tycho
org.eclipse.jdt.core
3.9.1.v20130905-0837
org.eclipse.core
运行时
3.9.100-v20131218-1515
org.eclipse.birt.runtime
org.eclipse.core.resources
3.8.101.v20130717-0806

在maven存储库中找到更新版本

  <dependencies>
    <dependency>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>org.eclipse.jdt.core</artifactId>
        <version>3.12.0.v20160516-2131</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>runtime</artifactId>
        <version>LATEST</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>resources</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>

org.eclipse.tycho
org.eclipse.jdt.core
3.12.0.v20160516-2131
org.eclipse.core
运行时
最新的
org.eclipse.core
资源
最新的
使用新方法发布工件。对于像最终用户这样的用户,不再需要任何解决方法,POM是用户友好的(简单的版本号、依赖项的标准maven元数据、源工件、第三方依赖项……)

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

<dependency>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.core</artifactId>
  <version>3.12.2</version>
</dependency>

org.eclipse.jdt

.

您到底需要JDT core做什么?JDT核心是一个eclipse插件,希望在OSGi容器(例如EclipseEquinox)中运行。因此,将JDT作为标准maven依赖项使用是行不通的。如果您只需要使用编译器,那么就可以使用JDT编译器适配器,它可以在Eclipse之外运行。那么,你的目标是什么?@AndrewEisenberg我想使用
ASTParser
。不幸的是,
ASTParser
类不是编译器适配器的一部分。唯一受支持的使用方法是在Eclipse平台内运行JDT。因此,您需要创建一个依赖于jdt核心的eclipse插件。
  <dependencies>
    <dependency>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>org.eclipse.jdt.core</artifactId>
        <version>3.12.0.v20160516-2131</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>runtime</artifactId>
        <version>LATEST</version>
    </dependency>

    <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>resources</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>
<dependency>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.core</artifactId>
  <version>3.12.2</version>
</dependency>