2017-06-09 2 views
7

Java 9とgradleでスプリングブートを使用しようとしています。私は私の単純なコードを実行することができません 、私は、下記のエラーが出ます: -Java 9モジュールはAとBからパッケージXを読み込みます

Information:java: Errors occurred while compiling module 'Java9Gradle_main' 
Information:javac 9-ea was used to compile java sources 
Information:6/9/2017 10:40 PM - Compilation completed with 65 errors and 0 warnings in 15s 200ms 
Error:java: module reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter.web reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter.web reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.autoconfigure reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.autoconfigure reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter.logging reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter.logging reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.core reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.core reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module snakeyaml reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module snakeyaml reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter.tomcat reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter.tomcat reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module hibernate.validator reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module hibernate.validator reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module jackson.databind reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module jackson.databind reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.web reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.web reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.webmvc reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.webmvc reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.context reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.context reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module logback.classic reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module logback.classic reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module jcl.over.slf4j reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module jcl.over.slf4j reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module jul.to.slf4j reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module jul.to.slf4j reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module log4j.over.slf4j reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module log4j.over.slf4j reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module commons.logging reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module commons.logging reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module tomcat.embed.core reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module tomcat.embed.core reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module tomcat.embed.el reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module tomcat.embed.el reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module tomcat.embed.websocket reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module tomcat.embed.websocket reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module validation.api reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module validation.api reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module jboss.logging reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module jboss.logging reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module classmate reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module classmate reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module jackson.annotations reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module jackson.annotations reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module jackson.core reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module jackson.core reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.aop reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.aop reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.beans reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.beans reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.expression reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.expression reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module logback.core reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module logback.core reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module slf4j.api reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module slf4j.api reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot.starter reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 
Error:java: module spring.boot reads package org.apache.commons.logging.impl from both jcl.over.slf4j and commons.logging 
D:\project\Java9Gradle\src\main\java\module-info.java 
Error:(1, 1) java: module Java9Gradle.main reads package org.apache.commons.logging from both jcl.over.slf4j and commons.logging 

私の依存関係ファイルとmodule-info.javaファイルは非常にまっすぐ進むです。

module Java9Gradle.main { 
    requires spring.boot; 
} 


group 'Java9Gradle' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 

sourceCompatibility = 1.9 

repositories { 
    mavenCentral() 
} 

dependencies { 
    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter 
    compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: '1.5.3.RELEASE' 
    // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web 
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '1.5.3.RELEASE' 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 

誰かがお手伝いできますか?

おかげで、

アマール

答えて

4

推移依存性は、それが仕事作っ除くと、あまりにもmodule-info.javaを調整!

compile("org.springframework.boot:spring-boot-starter:1.5.3.RELEASE") { 
     exclude group: 'commons-logging', module: 'commons-logging' 
    } 
    compile("org.springframework.boot:spring-boot-starter-web:1.5.3.RELEASE"){ 
     exclude group: 'commons-logging', module: 'commons-logging' 
    } 
+1

module-info.javaファイルにはどのような調整が必要でしたか? – JMess

4
Jigsaw specs

非干渉による

- Javaコンパイラ、仮想マシン、および実行時に システムを同じ名前 のパッケージが含まれているモジュールは干渉しないことを確認する必要がありますお互い。 2つの異なるモジュールに同じ名前の パッケージが含まれている場合、各モジュールの観点からは、 そのパッケージ内のすべてのタイプとメンバーは、 モジュールによってのみ定義されます。 1つのモジュールのそのパッケージ内のコードは、他のモジュールの パッケージプライベートタイプまたはそのパッケージ内のメンバーにアクセスできないようにする必要があります。

これは分割パッケージ@Andy hereによって答えでと呼ばれています。その解決策は、これらのパッケージを分割して、モジュールjcl.over.slf4jcommons.loggingに含まれているパッケージに、1つのモジュールのみでアクセスするようにすることです。


次の2つのモジュールのいずれかが、プロジェクトに含まれていることを確認するために、両方の依存関係spring-boot-starter:1.5.3.RELEASEspring-boot-starter-web:1.5.3.RELEASEを分析することができます。

関連する問題