当前位置: 首页 > 面试题库 >

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

施玉宸
2023-03-14
问题内容

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

jdeps --module-path modules --generate-module-info out com.demo.market.jar

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

但是,当我添加时,--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

另一方面,显式添加它们可确保模块存在于根模块集合中。

作为替代方案(从 JEP261#Module System中
,您可以尝试使用以下命令

jdeps --module-path modules --add-modules=ALL-MODULE-PATH --generate-module-info out com.demo.market.jar

作为最后的特殊情况,在运行时和链接时,如果均为 ALL-MODULE-PATH, 则将在相关模块路径上找到的所有可观察模块添加到根集中。
ALL-MODULE-PATH
在编译时和运行时均有效。提供给构建工具(例如Maven)使用,该工具已经确保需要模块路径上的所有模块。这也是将自动模块添加到根集中的便捷方法。

关于要执行的命令,此处有边注:

  • 同样,jdeps问题中共享的输出在-verbose:class理想情况下也适用。


 类似资料:
  • 我一直在使用JLink为各种Spring Boot应用程序创建最小的JRE。我已经成功地通过尝试和错误找出所需的模块手动做到了这一点。在成功地完成这一任务之后,我一直试图使用JDEPS来自动化这个过程。 第一次尝试是为我的应用程序扫描构建的Jar。我正在使用Java14 jdeps来分析Java11代码库。 接下来,我使用提取应用程序 这给了我一个boot-inf/lib文件夹,其中包含所有150

  • 我正在使用STS 2.9.1(构建在Eclipse 3.7.2上)和与STS(V1.0.200.20111228-1245)绑定的m2e插件。 我有一个问题是包含多个模块的Eclipse项目中缺少依赖项,或者我不完全理解它应该如何工作。 这是一个maven项目。 在我的项目>Properties>Java Build Path>Libraries中,我有“maven dependencies”库,

  • Visual Studio加载了正确的PDB文件,但找不到解决方案中任何内容的源信息。 我试过的事情: null

  • 问题内容: 我正在尝试使用Maven构建Javahibernate项目。但是,当我尝试执行此操作时,似乎没有依赖项吗? 我的项目中现在有了这个pom.xml: 当我尝试使用mvn进行构建时,出现此错误: 我搜索了此错误,发现很多人必须在其pom.xml文件中更改其hibernate核心依赖版本,但似乎我没有hibernate核心,那么如何解决此问题? 问题答案: 它具有建议的JTA 1.1依赖性。

  • 我在构建我的应用程序时遇到此问题。有人知道怎么回事吗? React Hook useEffect缺少依赖项:“conectar”。包括它或删除依赖项数组react hooks/dep

  • 在我的反应/redux应用程序中,我使用调度来调用每次安装组件时从redux中的状态检索数据的操作。问题正在使用状态发生我的方式不工作 下面是我得到的错误: React Hook useEffect缺少依赖项:“dispatch”。包括它或删除依赖项数组。像“getInvoiceData”这样的外部作用域值不是有效的依赖项,因为对它们进行变异不会重新呈现组件react HOOK/DEP 这是我的密