Java 格拉德尔:如果我把依赖项从;实施";至;“运行时”;而项目仍在编译中,会有问题吗?
我有一个使用多个依赖项的项目。我怀疑只有在运行时才需要一个依赖项,但我不是100%确定 在gradle中,我将依赖项从Java 格拉德尔:如果我把依赖项从;实施";至;“运行时”;而项目仍在编译中,会有问题吗?,java,gradle,build.gradle,Java,Gradle,Build.gradle,我有一个使用多个依赖项的项目。我怀疑只有在运行时才需要一个依赖项,但我不是100%确定 在gradle中,我将依赖项从implementation更改为runtimeOnly。这个项目编译得很好 这种变化会有负面影响吗 如果将依赖项从实现更改为仅运行时,则表示项目在编译期间不需要此依赖项。一切都应该很好,因为运行时类路径没有改变 我能想到的唯一问题是: 更改的依赖项是javac注释处理器,如Lombok,它应该使用compileOnly和annotationProcessor,而不是实现 您有一
implementation
更改为runtimeOnly
。这个项目编译得很好
这种变化会有负面影响吗 如果将依赖项从
实现
更改为仅运行时
,则表示项目在编译期间不需要此依赖项。一切都应该很好,因为运行时类路径没有改变
我能想到的唯一问题是:
javac
注释处理器,如Lombok,它应该使用compileOnly
和annotationProcessor
,而不是实现
实现
关键字@SuryakantBharti您链接的问题虽然有用,但指的是不推荐使用的
运行时
,而不是仅运行时
。Java可以在运行时编译类。如果发生这种编译,并且编译具有依赖性,那么将实现
更改为仅运行时
是否会导致问题?哪种编译?JVM可以将字节码编译成机器码,但通常不会将源代码编译成字节码。您是否将编译器(如ECJ)与应用程序一起提供,并编译源代码?即使如此,runtimeOnly
仍然会在运行时提供依赖关系,因此编译应该可以工作;