Java 9에서 자동 생성된 이름에 대한 모듈 종속성을 해결할 수 없습니까?
이 문제는 자동 생성된 모듈과의 종속성이 있을 때 발생합니다. name에는 Java 9에서 예약된 키워드 "native"가 포함되어 있습니다. 결과적으로 이를 모듈에 대한 종속성으로 추가하는 것이 불가능해집니다. 설명자.
해결책:
이 문제를 해결하려면 두 가지 기본 접근 방식을 고려할 수 있습니다.
추가 자동 모듈 이름 속성:
아티팩트 소유자는 META-INF/MANIFEST.MF 파일에 Automatic-Module-Name 속성을 지정하는 아티팩트가 포함되어 있습니다. 이 속성은 모듈 설명자가 사용할 모듈 이름을 정의합니다. Automatic-Module-Name을 유효한 이름("네이티브" 제외)으로 설정하면 문제가 해결될 수 있습니다.
다음에 모듈 선언 추가 JAR:
아티팩트 소유자는 다음을 사용하여 모듈 선언을 추가할 수 있습니다. module-info.java를 JAR 파일로 복사합니다. 이를 통해 모듈 이름을 명시적으로 지정할 수 있으므로 자동 생성된 이름을 피할 수 있습니다. 그러나 이 접근 방식은 라이브러리와 프레임워크가 상향식을 채택하므로 점진적인 마이그레이션이 필요합니다.
모듈 설명자 사양:
에 따르면 Java 9 모듈 선언 사양에서 모듈 이름은 마침표로 구분된 하나 이상의 Java 식별자로 구성됩니다. 이는 모듈 이름이 다음 규칙을 준수해야 함을 의미합니다.
Java 9의 밑줄에 대한 참고 사항:
밑줄은 일반적으로 모듈 이름의 일부로 허용되지만 다음 사항에 유의하는 것이 중요합니다. 밑줄은 이제 Java 9의 키워드입니다. 따라서 밑줄을 초기 문자로 포함하는 식별자는 피해야 합니다. 예:
int _native; // Works fine int _; // Causes an error in Java 9
위 내용은 예약된 키워드가 포함된 자동 생성 이름과 관련된 Java 9 모듈 종속성 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!