Java 生成模块信息JDEP时缺少依赖项
我正在尝试使用以下命令运行jdeps: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 --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.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
来说,它工作得很好,是的。