Могу ли я исключить экспортированный пакет из модуля Java? - PullRequest
0 голосов
/ 23 июня 2018

Модули jta и java.sql экспортируют пакет javax.transaction.xa в модуль dom4j

Как видите, оба модуля jta и java.sql экспортируют один и тот же пакет, javax.transaction.xa. Однако пакет в jta содержит классы, которые мне требуются, которых нет в java.sql. Мне бы просто не потребовался модуль java.sql, но мне нужен java.sql.SQLException.

Можно ли запретить экспорт java.sql javax.transaction.xa?

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Вы можете использовать флаги javac -d -cp /PATHTOYOURFILE -d и -cp для компиляции только необходимых каталогов и путей к классам.Classpath также может быть разделен запятой.

0 голосов
/ 24 июня 2018

JTA GitHub читает следующее в подтверждение того, на что @Alan уже указал в комментарии -

Этот автономный выпуск Java (TM)) Java Transaction API (JTA), использующий «автоматическое» имя модуля Java Platform Module System java.transaction, чтобы соответствовать имени модуля, используемому в JDK 9. В будущей версии будут содержаться полные метаданные модуля.Более того, пакет javax.transaction.xa теперь принадлежит Java SE.

Вы можете использовать версию с Maven (например), используя: -

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>

Вот выпуск примечания для JTA1.3MR.


Кроме того, JEP 320: удаление модулей Java EE и CORBA подробно описываетто же самое -

... Пакет javax.transaction.xa поддерживает транзакции XA в JDBC.Этот «пакет XA» расположен вместе с JDBC в модуле java.sql в Java SE 9. Поскольку модуль java.sql не может быть обновлен, автономная версия JTA не может быть переопределенаверсия Java SE пакета XA

и, кроме того, примечание о расширяемости вашего решения

... Для удобства обслуживания пакет XA в Java SE можетв будущем он будет перенесен на другой не обновляемый модуль, но с точки зрения архитектуры он останется в Java SE вместе с JDBC на долгосрочную перспективу ...

и в соответствии с планом

В начале 2018 года будет определено, что JTA 1.3 будет состоять только из пакета взаимодействия CORBA;файл JAR будет соответствующим образом обновлен.

...