Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成模块信息JDEP时缺少依赖项_Java_Java 9_Java Platform Module System_Jdeps - Fatal编程技术网

Java 生成模块信息JDEP时缺少依赖项

Java 生成模块信息JDEP时缺少依赖项,java,java-9,java-platform-module-system,jdeps,Java,Java 9,Java Platform Module System,Jdeps,我正在尝试使用以下命令运行jdeps: jdeps --module-path modules --generate-module-info out com.demo.market.jar Mycom.demo.market.jar依赖于应用程序模块和自动模块。 我将所有依赖项都放在“模块”文件夹中,但出现错误: Error: missing dependencies com.demo.market.platform.MarketPlace -> com.demo.client.who

我正在尝试使用以下命令运行jdeps:

jdeps --module-path modules --generate-module-info out com.demo.market.jar
My
com.demo.market.jar
依赖于应用程序模块和自动模块。 我将所有依赖项都放在“模块”文件夹中,但出现错误:

Error: missing dependencies
com.demo.market.platform.MarketPlace ->  com.demo.client.wholesale.Client  not found
com.demo.market.platform.MarketPlace ->  com.demo.product.api.Product      not found
com.demo.market.platform.MarketPlace ->  com.demo.product.laptop.Laptop    not found
com.demo.market.collector.ProductsCollector -> com.demo.logistic.DeliveryService not found
com.demo.market.collector.ProductsCollector -> com.demo.product.api.Product      not found
但是当我添加
——添加模块时,它工作得很好

jdeps --module-path modules --add-modules com.demo.client,com.demo.product,com.demo.logistic --generate-module-info out com.demo.market.jar

我做错什么了吗?我认为JDEP将查找所有模块,而不是手动添加它们。

执行以下操作时:

jdeps --module-path modules --generate-module-info out com.demo.market.jar
从目录解析的模块是可观察的模块,在您的情况下,这些模块无法进入根模块集


关于问题的另一部分—

jdeps --module-path modules --add-modules com.demo.client,com.demo.product,com.demo.logistic --generate-module-info . com.demo.market.jar
另一方面,显式地添加它们可以确保这些模块存在于根模块集中


作为替代方法(从中),您可以尝试使用命令

jdeps --module-path modules --add-modules=ALL-MODULE-PATH --generate-module-info out com.demo.market.jar 
作为最后一种特殊情况,在运行时和链接时,如果是ALL-MODULE-PATH,则在相关的 模块路径被添加到根集中。ALL-module-PATH在 编译时和运行时。这是为构建使用而提供的 Maven等工具,它们已经确保 需要模块路径。这也是添加自动 将模块添加到根集


侧注:关于要执行的命令:

  • 此外,问题中共享的
    jdep
    输出在
    -verbose:class
    中也适用。

jdeps--从com.my.app.jar中生成模块信息是否对您不起作用?您的路径是什么?它包括哪些模块。您可以分享您使用的命令
--模块路径
--添加模块
的详细信息吗?添加
所有模块路径
解决了这个问题。谢谢。但对我来说仍然没有当我可以只使用
jdeps--generate module info out com.my.app.jar
@ZimboRodger时,如果您允许将现有jar迁移到Java9模块,并将
module info.java
作为描述符添加到其中,那么它将非常有用。我的意思是,如果不指定
--module path
,我应该如何使用此命令,而不必像您在报告中提到的那样指定
--module path
首先,模块路径是确保在生成模块信息时解析当前工件所依赖的所有模块。另外要查找的路径。@Naman,ty以获取有用的信息。我尝试了您的解决方案,但对于
selenium chrome driver.jar中的所有依赖项,我仍然得到
not found
遗留jar,但是对于
seleniumapi.jar
来说,它工作得很好,是的。