JPA(javax.persistence.*
クラス)を必要とするプロジェクトでJava 9をテストしています。 module-info.java
を追加して私のモジュールを宣言すると、javax.persistece
パッケージのすべてのクラスが利用できなくなります。JPAを使用するためにJava 9で必要なモジュールはどれですか?
私は多くを検索しましたが、Java 9モジュールプロジェクトでJPAを使用する必要があるモジュールが見つかりませんでした。
UPDATE アランが示唆したように、私は私がmodule-info.java:[3,18]モジュールが見つかりません」を取得このmodule-info.java
module my.module {
requires java.persistence;
}
と
$ jar --describe-module --file=javax.persistence-api-2.2.jar
No module descriptor found. Derived automatic module.
[email protected] automatic
requires java.base mandated
contains javax.persistence
contains javax.persistence.criteria
contains javax.persistence.metamodel
contains javax.persistence.spi
しかし、まだ走りました:java.persistence "
UPDATE 2 これは私のプロジェクト構造である:
.
├── pom.xml
└── src
├── main
│ ├── java
│ │ ├── my
│ │ │ └── module
│ │ │ └── MyBean.java
│ │ └── module-info.java
│ └── resources
└── test
├── java
└── resources
pom.xml
がjavax.persistence-api
依存関係を持っています。
テストレポ:https://github.com/heruan/java9-jpa
'requires'は' javax.persistence-api-2.2'自動モジュールのファイル名を使うべきですが、それは奇妙に見えます。私は瓶の名前を変更しますか? –
@JoopEggen私が間違っていなければ、自動モジュール命名法は、英数字以外の文字をドット( '.')に変換します。したがって、現在のモジュール名は 'javax.persistence.api'になります(バージョン番号がなくモジュールレベルで維持されていません) – nullpointer