Java 9에서 자동 생성된 이름에 대한 모듈 설명자를 파생할 수 없음: 해결 방법 탐색
Java 9에서 모듈 도입으로 인해 요구 사항이 발생했습니다. Java 식별자 규칙에 따라 모듈 이름을 정의합니다. 그러나 이 요구 사항은 특정 자동 생성 모듈 이름, 특히 "native" 키워드를 포함하는 모듈 이름에 대한 문제를 제기합니다.
Netty Epoll 전송 종속성의 경우를 고려하십시오.
<dependency> <groupId>io.netty</groupId> <artifactId>netty-transport-native-epoll</artifactId> <version>${netty.version}</version> <classifier>${epoll.os}</classifier> </dependency>
이 종속성에 대해 자동 생성된 모듈 이름은 "netty.transport.native.epoll"이며, 이는 "네이티브"의 존재로 인해 Java 식별자 규칙을 위반합니다. 키워드.
이 문제를 해결하기 위한 한 가지 잠재적 해결 방법은 Automatic-Module-Name 속성을 포함하도록 아티팩트의 META-INF/MANIFEST.MF 파일을 수정하는 것입니다. . 이 속성은 모듈 설명자에서 사용해야 하는 모듈 이름을 정의합니다.
<manifestEntries> <Automatic-Module-Name>netty.transport.epoll</Automatic-Module-Name> </manifestEntries>
그러나 이 솔루션은 아티팩트 소유자와의 협력이 필요하므로 덜 즉각적인 옵션입니다.
대체 접근 방식은 아티팩트 소유자가 JAR에 module-info.java를 사용하여 모듈 선언을 포함하도록 하는 것입니다. 이 작업은 모듈 정보를 제공하지 않는 종속성이 모든 패키지를 내보내는 것으로 가정되는 상향식 마이그레이션 프로세스를 트리거합니다.
위 내용은 Java 9 모듈 설명자 오류: \'native\'와 같이 자동 생성된 이름을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!