代码之家  ›  专栏  ›  技术社区  ›  Jacob G.

我可以从Java模块中排除导出的包吗?

  •  6
  • Jacob G.  · 技术社区  · 6 年前

    模块JTA和Java.SQL输出包JavaX.TraceXON.XA到模块DOM4J

    如您所见,两个模块 jta java.sql 导出相同的包, javax.transaction.xa 是的。但是,包在 JTA公司 我要求的课程中没有 java.sql语言 是的。我根本不需要 java.sql语言 模块,但我需要 java.sql.SQLException 是的。

    有可能防止 java.sql语言 从导出 JavaX.TraceX.XA 是吗?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Naman    6 年前

    这个 JTA GitHub 阅读以下内容以确认@alan在 comment -

    这个独立版本的java(tm)java事务api(jta)使用 Java平台模块系统“自动”模块名称 java.transaction ,以匹配JDK 9中使用的模块名。未来 版本将包括完整的模块元数据。而且 javax.transaction.xa 包现在归JavaSE所有。

    您可以使用maven的版本(例如)使用:

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

    这是 release notes for JTA1.3MR .


    另外 JEP 320: Remove the Java EE and CORBA Modules 同样的阐述-

    …这个 JavaX.TraceX.XA 包支持JDBC中的XA事务。 这个 "XA package" 与JDBC位于 java.sql 模块输入 爪哇岛9号。因为 java.sql语言 模块不能升级,它不能 独立版本的jta可以覆盖java se xa包的版本

    并进一步注意解决方案的可扩展性

    …为了便于维护,java se中的xa包可以移动到 不同的不可升级模块,但作为 体系结构问题它将与JDBC一起留在JavaSE中 长期。。。

    按计划

    在2018年初,JTA1.3将被定义为仅由CORBA组成 interop包;jar文件将相应地更新。

        2
  •  -1
  •   James Wong    6 年前

    你可以用 javac -d -cp /PATHTOYOURFILE -d -cp 只编译所需目录和类路径的标志。类路径也可以用逗号分隔。