gpt4 book ai didi

java - 如何使用模块化 Java 在 Gradle 6.6 中设置 mainClassName

转载 作者:行者123 更新时间:2023-12-03 03:44:18 25 4
gpt4 key购买 nike

在 build.gradle 中的 Gradle 6.3 中,mainClassName 可以这样设置,没有任何提示:

mainClassName = 'mod/app.Main'
在 Gradle 6.61 中,上述行导致:

java.lang.module.InvalidModuleDescriptorException: Package mod.app notfound in module


这可以通过删除 mainClassName 的模块部分来解决:
mainClassName = 'app.Main'
虽然异常得到解决,但 Gradle 仍然声明:

No module was provided for main class, assuming the current module.Prefer providing 'mainClassName' in the following format:'$moduleName/a.b.Main'


我已经尝试过这种变化:
ext.moduleName = 'mod'
mainClassName = '${ext.moduleName}/app.Main'
到目前为止,我一直无法让其中任何一个工作。我可以将设置设置为“app.Main”,但我更喜欢使用 Gradle 喜欢的变体。这应该怎么做?

最佳答案

Gradle 6.3 不支持 JPMS,但 6.4+ 支持。所以我假设您使用的是第 3 方 gradle-modules-plugin .对于这个插件,您需要使用版本 1.7.0或更高版本以支持较新版本的 Gradle。
或者,删除插件并使用 native support在 Gradle 中。现在看起来你同时是两者的混合体。

关于java - 如何使用模块化 Java 在 Gradle 6.6 中设置 mainClassName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63934886/

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