Java 生成时不存在包,但导入时没有错误?

Java 生成时不存在包,但导入时没有错误?,java,android-studio,gradle,build,Java,Android Studio,Gradle,Build,在我将Kryo依赖项添加到我的项目之前,我的项目建设得很好。我可以在IDE中使用Netty和Kryo而不会出现语法错误,但它不会生成。我所做的只是将Kryo添加到我的common模块中,并开始在代码中实现Kryo,当我想运行Gradle时,它返回了一个关于不存在Netty和Kryo包的错误列表 我的gradle非常简单,客户端和服务器模块都依赖于常见的atm有2个自定义类,并实现Kryo和Netty project(":common") { apply plugin:'java'

在我将
Kryo
依赖项添加到我的项目之前,我的项目建设得很好。我可以在IDE中使用
Netty
Kryo
而不会出现语法错误,但它不会生成。我所做的只是将
Kryo
添加到我的
common
模块中,并开始在代码中实现
Kryo
,当我想运行
Gradle
时,它返回了一个关于不存在
Netty
Kryo
包的错误列表

我的gradle非常简单,客户端和服务器模块都依赖于常见的atm有2个自定义类,并实现
Kryo
Netty

project(":common") {
    apply plugin:'java'
    dependencies {
        // https://mvnrepository.com/artifact/io.netty/netty-all
        implementation group: 'io.netty', name: 'netty-all', version: '4.1.33.Final'
        // https://mvnrepository.com/artifact/com.esotericsoftware.kryo/kryo
        implementation group: 'com.esotericsoftware.kryo', name: 'kryo', version: '2.24.0'
    }
}

project(":server") {
    apply plugin:'java'
    dependencies {
        implementation project(":common")
        // https://mvnrepository.com/artifact/org.mongodb.morphia/morphia
        compile group: 'org.mongodb.morphia', name: 'morphia', version: '1.3.2'
    }
}

project(":client") {
    apply plugin:'java'
    dependencies {
        implementation project(":common")
    }
}
在客户机和服务器(都是java应用程序atm)中,我使用
Kryo
Netty
,没有语法错误,但当我运行或构建时,我会为导入
Netty
Kryo
的每个类获得以下列表

error: package io.netty.channel does not exist  
error: package io.netty.channel does not exist  
error: package io.netty.channel does not exist  
error: package io.netty.channel.group does not exist    
error: cannot find symbol class ChannelInboundHandlerAdapter    
error: cannot find symbol class ChannelGroup    
error: cannot find symbol class ChannelHandlerContext   
error: cannot find symbol class ChannelGroup    
error: cannot find symbol class ChannelHandlerContext   
error: cannot find symbol class ChannelHandlerContext   
error: method does not override or implement a method from a supertype  
error: method does not override or implement a method from a supertype  

我尝试了最明显的
无效缓存/重新启动
,清理和重建,但没有成功。除此之外,我还尝试修改插件,将其设置为
java库
并返回。唯一不同的是,我尝试排除其他两个模块的
Kryo
,但在尝试了几次之后,我暂时放弃了,并删除了那些
exclude
行。这可能只是我忽略了一些东西,但我无法指出它。

Mmmh所以你的想法是正确的。Backup.idea/modules.xml,删除它,所有东西都可能会消失,从Gradle工具窗口重新导入。@LppEdd这不起作用。由于这需要的时间太长,而且仍然是一个相当小的项目,我认为解决这一问题的最快方法是创建一个新项目,并将我的代码复制/粘贴到其中。是的!但我不明白一件事,为什么要在一个Gradle文件中填充依赖项?为什么不使用每个模块build.gradle来添加它们?@LppEdd所有需要公共库的项目都依赖于它们,因此我将它们添加到公共库中。我认为最正确的方法是将依赖关系委托给每个模块,以分离关注点。然后,在常见的一个问题上,只需要将它们作为“实现”就可以了。Backup.idea/modules.xml,删除它,所有东西都可能会消失,从Gradle工具窗口重新导入。@LppEdd这不起作用。由于这需要的时间太长,而且仍然是一个相当小的项目,我认为解决这一问题的最快方法是创建一个新项目,并将我的代码复制/粘贴到其中。是的!但我不明白一件事,为什么要在一个Gradle文件中填充依赖项?为什么不使用每个模块build.gradle来添加它们?@LppEdd所有需要公共库的项目都依赖于它们,因此我将它们添加到公共库中。我认为最正确的方法是将依赖关系委托给每个模块,以分离关注点。然后,在常见的一种情况下,简单地要求它们作为“实现”。