歴史的に、私は常にMavenプロジェクトで次のJAXB RIアーティファクトを使用していました。
com.Sun.xml.bind:jaxb-impl
-ランタイムcom.Sun.xml.bind:jaxb-xjc
-スキーマコンパイラcom.Sun.xml.bind:jaxb-jxc
-スキーマジェネレーターおよそバージョン2.2.10*
これらのアーティファクトは現在 「古い」と記述 :
com.Sun.xml.bind:jaxb-impl
古いJAXBランタイムモジュール。
そのため、これらのアーティファクトは現在廃止されているようです。
質問は:
代わりにどのアーティファクトを使用する必要がありますか?
Oracleで明確にした後、次のアーティファクトを使用する必要があります。
XMLをJavaオブジェクトまたはmarshal JavaオブジェクトをXMLとしてマーシャリング解除する場合:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>...</version>
</dependency>
XMLスキーマがあり、そこからJavaコードを生成する場合:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-xjc</artifactId>
<version>...</version>
</dependency>
schemagen
)Java JAXBアノテーションを持つクラスがあり、それらに基づいてXMLスキーマを生成する場合:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-jxc</artifactId>
<version>...</version>
</dependency>
後者の2つのアーティファクト(org.glassfish.jaxb:jaxb-xjc
およびorg.glassfish.jaxb:jaxb-jxc
)はMavenプラグインによってラップされているため、通常はランタイムで必要ありません。
Mavenプロジェクトがなんらかの方法で完全なクラスパスを取得できない場合は、デバッグ出力をオンにしてMavenコンソールを確認してください。次のエラーメッセージが表示される場合があります。
[エラー] com.Sun:tools:jarの 'dependencyManagement.dependencies.dependency.systemPath'は絶対パスを指定する必要がありますが、$ {tools.jar} @です
これは、次の問題が原因です。
@rustyxによる solution は、-vm
オプションのEclipse.ini
:
-vm
<PATH_TO_JDK>\jre\bin\javaw.exe