필자는 필요에 따라 플러그인 v3.7.0 및 JDK 9.0.1을 사용하고 있습니다. 두 개의 requires
문을 추가했습니다. 각 문은 클래스 경로 (자동 모듈)의 jar를 나타냅니다. jar 파일을 Modulepath로 이동 한 후 module-info.java가 Eclipse에서 성공적으로 컴파일됩니다. 그러나, 메이븐 (Maven)은 그들 중 하나가 누락되었다고 말하는 컴파일러 에러를 낸다. (이상하게도, 처음에는 한 줄만 쓰는 것이 아니다.) 자동 모듈 이름을 확인하려고했지만이 병에 대한 명령에서 오류가 발생합니다. 이 오류는 무엇을 의미하며 올바른 모듈 이름을 찾을 수 있도록 수정해야합니까?module-info.java 컴파일이 실패합니다. maven-compiler-plugin 및 자동 모듈
아래의 출력에서 내 사용자 이름을 바꿨습니다. 문제의 항아리는 ServiceLoader
를 사용하지 않습니다하지만 자바 9.
computerName:Commander-java username$ jar --file=/Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar --describe-module
Unable to derive module descriptor for: /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar
Provider class com.username.rcf.server.TestCmdChain not in module
computerName:Commander-java username$ java -p /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar --list-modules
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class com.username.rcf.server.TestCmdChain not in module
How to deal with java keywords in auto generated module names in Java 9?의 대답은 모듈 이름에서 Java 식별자의 사용과 관련된 다른 오류가 컴파일되지 않습니다. 항아리 이름이 rcf-1.0.jar
이므로 내 모듈의 자동 항아리 이름은 rcf
이어야합니다. 내가 얻는 오류도 다르다. 모듈 정보를 도출하는 동안
[Java 9에서 자동 생성 모듈 이름의 Java 키워드 처리 방법] (https://stackoverflow.com/questions/46501388/how-to-deal-with-java-keywords-in- 자동 생성 모듈 이름 - 자바 9) ... \t 유물'rcf-1.0.jar'을 소유하고 있습니까? – nullpointer
예 전 소유하고 있습니다. 이름에 자바 식별자가 없습니다. 그냥 rcf입니다. 이 오류는 ServiceLoader와 관련이있는 것처럼 보입니다. 오류에서 언급 한 클래스가 ServiceLoader와 함께 사용되는 인터페이스를 구현하지만 확실하지 않기 때문입니다. 그것을 이해할 수 없습니다. – GabeV
중복 된 투표가 철회되었습니다. 나중에 구현 패키지 [모듈에 상주하지 않는 것] (https://stackoverflow.com/a/46881513/1746118) 자체처럼 보입니다. – nullpointer