Java依赖关系管理:特定于IDE?

Java依赖关系管理:特定于IDE?,java,maven,gradle,Java,Maven,Gradle,上面的问题可能有点误导人,所以我不得不进一步阐述 最近我一直在尝试使用java编写一个非常简单的RESTAPI。我想使它尽可能轻量级,所以决定使用JavaSpark框架 官方文档解释了如何在maven中使用spark,但我决定使用Gradle,因为它看起来是更好的选择 大约6个小时后,我无法从spark文档中获取示例代码。在试图编译我的项目时,spark库不知何故没有被识别出来。AutoCompletion显示了spark框架的所有类,但代码出于某种原因拒绝编译 后来一个朋友帮我和maven一起

上面的问题可能有点误导人,所以我不得不进一步阐述

最近我一直在尝试使用java编写一个非常简单的RESTAPI。我想使它尽可能轻量级,所以决定使用JavaSpark框架

官方文档解释了如何在maven中使用spark,但我决定使用Gradle,因为它看起来是更好的选择

大约6个小时后,我无法从spark文档中获取示例代码。在试图编译我的项目时,spark库不知何故没有被识别出来。AutoCompletion显示了spark框架的所有类,但代码出于某种原因拒绝编译

后来一个朋友帮我和maven一起做了一个项目。那里也有一个问题。由于某种原因,spark框架的pom文件中的依赖项没有安装。我必须手动安装它们

后来我读了一些关于intellij(我的IDE)如何不能很好地与Gradle配合的帖子。我有点困惑,因为我不知道为什么IDE应该对dependentcy经理产生影响

我主要使用nodejs,依赖关系管理非常简单。当然,偶尔会出现一两个问题,但解决它将是微不足道的

所以我只想知道问题是从哪里来的?是否可能是我没有正确配置某些内容?spark框架是否有什么地方不能很好地与Gradle配合?我是否需要以某种方式修改或导出库以获得maven/Gradle的支持?我的IDE能否以某种方式与依赖关系管理器交互

如果有人能就上述问题与我分享一些信息,我将不胜感激,因为我还没有找到任何有用的信息

更新:以下所有配置文件和源:

Main.java

import static spark.Spark.*;

public class Main {
    public static void main(String[] args) {
        get("/hello", (req, res) -> "Hello World");
    }
}
build.gradle

group 'sparking'
version '1.0-SNAPSHOT'

apply plugin: 'java'
sourceCompatibility = 1.8

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile 'com.sparkjava:spark-core:2.6.0'
    testCompile 'junit:junit:4.12'
}
rootProject.name = 'sparking07'
设置。渐变

group 'sparking'
version '1.0-SNAPSHOT'

apply plugin: 'java'
sourceCompatibility = 1.8

repositories {
    jcenter()
    mavenCentral()
}

dependencies {
    compile 'com.sparkjava:spark-core:2.6.0'
    testCompile 'junit:junit:4.12'
}
rootProject.name = 'sparking07'
错误堆栈跟踪:

Exception in thread "main" java.lang.BootstrapMethodError: 
java.lang.NoClassDefFoundError: spark/Request
    at Main.main(Main.java:6)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.NoClassDefFoundError: spark/Request
    ... 6 more
Caused by: java.lang.ClassNotFoundException: spark.Request
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more

Process finished with exit code 1
更新:依赖项搜索:

你说的“打得不好”到底是什么意思?你遇到了什么问题?你尝试了什么?我读了一些帖子,关于一个用户的项目如何拒绝使用他本地的Gradle副本,并不断尝试下载另一个版本请具体准确。发布您的构建文件,发布您的代码,发布您的gradle版本,发布您执行的命令,发布您得到的输出。基本上说“我尝试了一些东西,但没用”让我们无法提供帮助。如果它是用gradle(在命令行上)构建的,但在IntelliJ中没有,那么发布您的IntelliJ版本,告诉您如何在IntelliJ中创建项目,告诉您在IntelliJ中尝试了什么,以及发生了什么。完整准确的错误消息。您发布的是运行时异常。它不可能在建筑时发生。关闭您的项目。选择文件-打开,选择build.gradle文件。导入后,确保在文件-项目结构中,语言级别和JDK是正确的(1.8.x,8)。点击Cmd-F9(或Windows/Linux上的Ctrl-F9)进行生成。告诉我发生了什么。要运行,右键单击Main,然后选择“runmain.Main”。如果仍然存在问题,请在资源管理器中展开“外部库”节点,并发布IDE框架的映像。集成很好,因为所有问题都已正确解决,并且构建过程已通过。我不知道在运行主类时,您是如何得到这个异常的。这不是在这里发生的。尝试检查jar文件,看看它是否在那里。或者删除home dir中.gradle目录下的缓存,以强制gradle重新下载依赖项。