gpt4 book ai didi

相同目录中的 Java 模块和资源

转载 作者:行者123 更新时间:2023-11-30 10:08:45 25 4
gpt4 key购买 nike

我正在努力习惯使用 modules-info.java 编写模块化 Java 应用程序。我现在无法理解资源处理的工作原理。在以前的项目中,我在资源中使用了一个“i18n/”目录,我在其中保存了所有翻译属性文件。

Project A
+- src/main/resources
+- i18n
+- projA_de.properties
+- projA_en.properties

Project B
+- src/main/resources
+- i18n
+- projB_de.properties
+- projB_en.properties

虽然这在 Java 8 中有效并且仍然可以用 Java 11 编译,但我得到了错误

Package i18n in both module project.a and module project.b

我明白,Java 11 更希望资源与类文件位于同一目录中。我想如果我重命名与包匹配的资源目录或任何其他独特的方式,这会起作用 - 但我不喜欢它产生的困惑。

是否有一种解决方法可以让我保留我习惯使用的资源并仍然受益于模块化?

最佳答案

I understand, that Java 11 much more expects the resources to be in the same directories as the class files

是的,它确实希望资源与包中的类位于相似的目录路径中,以便轻松访问它们。

但是,模块化还期望在模块路径上解析时没有两个模块引入相同的包。因此,正如您已经知道的那样,最简洁的解决方法是重命名其中一个模块的包结构

否则,另一种解决方法(不太好)是让这些模块保留在类路径中,结果被归类为 the unnamed module .

关于相同目录中的 Java 模块和资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53640794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com