Ответ 1
Ну, решение для этого похоже: -
-
переименование самого артефакта(может не понравиться всем владельцам)ИЛИ
-
Другим способом непрерывного использования одного и того же имени артефакта с новым (другим) именем модуля может быть упаковка META-INF/MANIFEST.MF артефакта с атрибутом Automatic-Module-Name, который определяет имя модуля, которое будет использоваться дескриптором модуля при преобразовании в качестве автоматического модуля.
ИЛИ
-
Владелец Artifact может добавлять объявления модуля с помощью
module.info.java
к их JAR. (это может привести к медленной миграции снизу вверх)
Поскольку объявление модуля, определенное в спецификациях как:
В объявлении модуля вводится имя модуля, которое может использоваться в другие объявления модуля для выражения отношений между модулями. имя модуля состоит из одного или нескольких Java-идентификаторов (§3.8) разделенных от "." лексемы.
В межсекторальном режиме объявления предлагает -
В некоторых случаях имя домена Интернета не может быть действительным пакетом имя. Вот некоторые предлагаемые соглашения для решения этих проблем. ситуации:
Если имя домена содержит дефис или любой другой специальный символ не разрешается в идентификаторе (§3.8), преобразуйте его в символ подчеркивания.
Если какой-либо из полученных компонентов имени пакета - это ключевые слова (§3.9), добавьте для них подчеркивание.
Если какой-либо из полученных компонентов имени пакета начинается с цифры или любой другой символ, который не допускается как начальный символ идентификатор, имеют подчеркивание, префиксное для компонента.
Но имейте в виду, что вы Underscore - это ключевое слово в Java9
int _; // is would throw error on javac based out of JDK9
int _native; // works fine