生成模块信息jdeps时缺少依赖项
我正在尝试使用以下命令运行jdeps:
jdeps --module-path modules --generate-module-info out com.demo.market.jar
我com.demo.market.jar
依赖于应用程序模块和自动模块。我将所有依赖项放在“模块”文件夹中,但出现错误:
Error: missing dependenciescom.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
但是,当我添加时,--add-modules
它工作正常。
jdeps --module-path modules --add-modules com.demo.client,com.demo.product,com.demo.logistic --generate-module-info out com.demo.market.jar
难道我做错了什么?我以为jdeps会找到所有模块,而不是手动添加它们。
回答:
执行以下命令时:
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
作为最后的特殊情况,在运行时和链接时,如果均为 则将在相关模块路径上找到的所有可观察模块添加到根集中。
在编译时和运行时均有效。提供给构建工具(例如Maven)使用,该工具已经确保需要模块路径上的所有模块。这也是将自动模块添加到根集中的便捷方法。
关于要执行的命令,此处有边注:
- 同样,
jdeps
问题中共享的输出在-verbose:class
理想情况下也适用。
以上是 生成模块信息jdeps时缺少依赖项 的全部内容, 来源链接: utcz.com/qa/401056.html