pom に次の依存関係を持つ Web アプリがあります。
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.9.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.1.9.Final</version>
<scope>test</scope>
</dependency>
この構成では、junit テストで次のエラーが発生します。
java.lang.ClassFormatError: クラス ファイル javax/persistence/Persistence のネイティブまたは抽象ではないメソッドにコード属性がありません
このエラーに関する情報はこちらで見つかりました。そこで、「javaee-web-api」の依存関係を削除しました。
その後、「package javax.persistence does not exist」などのコンパイル エラーが発生します。
そこで、「hibernate-entitymanager」のスコープをデフォルト (コンパイル) に変更しました。
作業ポン (依存関係) は次のようになります。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.9.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.1.9.Final</version>
</dependency>
生成された戦争に休止状態のjarが含まれていることを除いて、これですべて問題ありません。
これを修正する方法はありますか? maven pomを修正しますか?