簡體   English   中英

Java9 模塊錯誤:無法確定模塊名稱,未命名模塊讀取包和模塊 org.reactivestreams 從兩者讀取包

[英]Java9 module error: Can not determine the module name, the unnamed module reads package and module org.reactivestreams reads package from both

我收到 3 個不同的錯誤。

  1. 無法確定模塊名稱..
  2. 未命名的模塊讀取包..
  3. 模塊 org.reactivestreams 從兩者讀取包..

這些錯誤究竟是什么?

構建.gradle

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-webflux'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
     exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
     exclude group: 'org.mockito', module: 'mockito-core'
    }
 
    testImplementation 'io.projectreactor:reactor-test'
    testImplementation 'org.springframework.restdocs:spring-restdocs-webtestclient'
   

    compile("io.github.resilience4j:resilience4j-spring-boot2:1.3.1") {
     exclude group: 'org.mockito', module: 'mockito-core'
     }
   compile("io.github.resilience4j:resilience4j-reactor:1.3.1") {
     exclude group: 'org.mockito', module: 'mockito-core'
   }
   compile('org.springframework.boot:spring-boot-starter-aop')
   compile('org.springframework.boot:spring-boot-starter-actuator')
   compile group: 'com.google.code.gson', name: 'gson', version: '2.8.6'
}

錯誤信息:

任務:編譯Java

錯誤:無法確定 /Users/srihariprasad/.gradle/caches/modules-2/files-2.1/io.github.resilience4j/resilience4j-framework-common/1.3.1/8c16dda86fad3c9251930cad21ac87aa5/resilience4-common 的模塊名稱.1.jar

錯誤:未命名的模塊從resilience4j.spring.boot.common 和io.github.resilience4j.springboot2 讀取包io.github.resilience4j.timelimiter.autoconfigure

錯誤:未命名模塊從resilience4j.spring.boot.common 和io.github.resilience4j.springboot2 讀取包io.github.resilience4j.retry.autoconfigure

錯誤:未命名模塊從resilience4j.spring.boot.common 和io.github.resilience4j.springboot2 讀取包io.github.resilience4j.ratelimiter.autoconfigure 錯誤:未命名模塊從io.github.resilience4j.circuitbreaker.autoconfigure 讀取包彈性4j.spring.boot.common和io.github.resilience4j.springboot2錯誤:未命名的模塊從resilience4j.spring.boot.common和io.github.resilience4j.springboot2讀取包io.github.resilience4j.bulkhead.autoconfigure

錯誤:模塊org.reactivestreams 從resilience4j.spring.boot.common 和io.github.resilience4j.springboot2 讀取包io.github.resilience4j.timelimiter.autoconfigure

我們如何從哪個 jar 中找到這兩個模塊,以排除它們。 1.resilience4j.spring.boot.common,2.io.github.resilience4j.springboot2。 根據我的理解,我需要從resilience4j-spring-boot2:1.3.1中排除罐子。 但我不明白該怎么做?

未命名模塊導出的包只能被另一個未命名模塊讀取。 命名模塊不可能讀取(需要)未命名模塊。http://tutorials.jenkov.com/java/modules.html#unnamed-module

您使用 Resilience4j 作為自動模塊,但不允許拆分包的規則也適用於自動模塊。 如果多個 JAR 文件包含(並因此導出)相同的 Java 包,則這些 JAR 文件中只有一個可以用作自動模塊。 我們必須在 Resilience4j 中修復這個拆分包問題。 在此之前,您可以在運行應用程序時對 Java VM 使用 -classpath 參數。 在類路徑中,您可以包含所有較舊的 Java 類,就像您在 Java 9 之前所做的那樣。在類路徑中找到的所有類都將包含在 Java 稱為未命名模塊的內容中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM