> Java > java지도 시간 > Java 9 모듈 설명자 오류: \'native\'와 같이 자동 생성된 이름을 처리하는 방법은 무엇입니까?

Java 9 모듈 설명자 오류: \'native\'와 같이 자동 생성된 이름을 처리하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-28 17:36:10
원래의
785명이 탐색했습니다.

Java 9 Module Descriptor Errors: How to Handle Auto-Generated Names like

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿