Как найти сменные пакеты при переходе с Java 7 на 12? - PullRequest
0 голосов
/ 01 ноября 2019

Я перевожу огромное монолитное приложение с Java 1.7 на 12, и я хочу сделать это правильно, используя как можно меньше хаков. Я по праву продолжаю сталкиваться с такими ошибками:

[ERROR] /home/idiot/projects/projects/blah/blah/src/blah/blah/blah/Blah.java:[8,18] package sun.nio.cs.ext is not visible

и

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project blah: Compilation failure
    [ERROR] /home/idiot/projects/blah/blah/src/blah/blah/blah/Bblah.java:[152,42] package com.sun.org.apache.xerces.internal.dom is not visible
    [ERROR]   (package com.sun.org.apache.xerces.internal.dom is declared in module java.xml, which does not export it)

и такими предупреждениями, как этот

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.python.google.common.base.internal.Finalizer (file:/home/idiot/.m2/repository/own/plugin/own-plugin-1.jar) to field java.lang.Thread.inheritableThreadLocals
WARNING: Please consider reporting this to the maintainers of org.python.google.common.base.internal.Finalizer
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Модуляризация этого бегемотавеб-приложение кажется невозможным, даже без соответствующего учебного пособия. Большинство результатов Google и стека являются решениями, применимыми к средам, предшествующим java 11. Большинство google-fu рекомендует использовать правильный пакет вместо того, который сейчас скрыт / устарел.

Задача и мой вопрос: как узнать, чем заменен устаревший API?

Существуют сотни и тысячи файлов, использующих рефлексы, com.sun.org, sun.misc пакеты, и после того, как определены шаги по поиску пакетов для замены, как решить эту проблему? Просто вручную пройтись по тысячам файлов и обновить?

...