eclipse - 在Eclipse中另一个项目的调试启动的类路径中包括Gradle依赖项

标签 eclipse gradle classpath eclipse-classpath

我有一个具有Gradle依赖项的项目(例如projectA),为了对其进行调试,该项目包含在另一个项目(例如rootProject)的类路径中。 rootProject扫描类路径并在运行时加载projectA。

当我运行rootProject时,它会抛出java.lang.ClassNotFoundException,表示未找到projectA的依赖项。

java.lang.NoClassDefFoundError: org/glassfish/jersey/server/ResourceConfig
    at be.vervaeck.sam.spongerest.RESTServer.<init>(RESTServer.java:18) ~[RESTServer.class:?]
    at be.vervaeck.sam.spongerest.RESTServer.<init>(RESTServer.java:27) ~[RESTServer.class:?]
    at be.vervaeck.sam.spongerest.SpongePlugin.onServerStart(SpongePlugin.java:25) ~[SpongePlugin.class:?]
    at org.spongepowered.common.event.listener.GameStartedServerEventListener_SpongePlugin_onServerStart2.handle(Unknown Source) ~[?:?]
    at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:86) ~[RegisteredListener.class:?]
    at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:238) [SpongeModEventManager.class:?]
    at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:282) [SpongeModEventManager.class:?]
    at org.spongepowered.mod.SpongeMod.onStateEvent(SpongeMod.java:184) [SpongeMod.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:211) [LoadController.class:?]
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:189) [LoadController.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_74]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_74]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_74]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_74]
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) [guava-17.0.jar:?]
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) [guava-17.0.jar:?]
    at com.google.common.eventbus.EventBus.post(EventBus.java:275) [guava-17.0.jar:?]
    at net.minecraftforge.fml.common.LoadController.onPost(LoadController.java:53) [LoadController.class:?]
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
    at net.minecraftforge.fml.common.Loader.serverStarted(Loader.java:800) [Loader.class:?]
    at net.minecraftforge.fml.common.FMLCommonHandler.handleServerStarted(FMLCommonHandler.java:289) [FMLCommonHandler.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:510) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.server.ResourceConfig
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_74]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_74]
    ... 34 more

在Eclipse中,如何确保projectA的依赖项包含在rootProject调试 session 的类路径中?

最佳答案

您可以在build.gradle中声明project dependency。例如:

project(':rootProject') {
    dependencies {
        compile project(':projectA')
    }
}

关于eclipse - 在Eclipse中另一个项目的调试启动的类路径中包括Gradle依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556731/

相关文章:

java - Eclipse 编辑器允许接口(interface)中缺少 static 和 Final 关键字

gradle - 具有自定义gradle插件的Gradle复合构建在IntelliJ中失败: “Could not find method api() for arguments”

android - 由于 Android 上的 lint 类路径错误,Gradle 构建失败

android - react native : Could not find com. android.tools.build :gradle:2. 2.3

java - 运行 jar 文件时增量设置类路径的问题

java - 空指针异常,即使有照片

android - com.android.ide.common.process.ProcessException : Failed to execute aapt

java - 如何使用 java 中的注释从类路径加载甚至 Autowiring .json 文件?

java - bash 在命令中强制使用双引号

Groovy 的 Java 项目无法编译