私は自分のアプリケーションで以下のJ2EEの依存関係が含まれている場合、私は、サーブレットやJAX-RSクラスおよびインタフェースへのアクセスがあります。サーブレットとJAX-RSの依存関係はどこから来ますか?
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
しかし、彼らはから来ているの? Maven Centralで私はjavax:javaee-api:7.0
が依存関係としてjavax:javaee-web-api:7.0
を持っていることを確認しています。これは依存関係としてjavax.servlet:javax.servlet-api:3.1.0
とjavax.ws.rs:javax.ws.rs-api:2.0
を持っていますので、その答えです。
しかし、これらすべての依存関係が、私は明示的に含めない限り推移の依存関係として、彼らは私のプロジェクトのために現れないことを意味し、optional
としてマークされています。しかし、私のプログラムは単にjavax:javaee-api:7.0
に依存してコンパイルされます。どうして?
私の依存関係のツリーです。彼らが来ているところ私は表示されません。
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ temp-server ---
[INFO] com.example:test-server:war:1.0.0-SNAPSHOT
[INFO] +- com.google.code.findbugs:jsr305:jar:3.0.1:provided
[INFO] \- javax:javaee-api:jar:7.0:compile
[INFO] \- com.sun.mail:javax.mail:jar:1.5.0:compile
[INFO] \- javax.activation:activation:jar:1.1:compile
(これは、すべての基本的なものであり、私は混乱している理由を知らない私は何かを明らかに不足している必要があります。。)JAX-RS 2.0
として
あなたは特にどのクラスについて話していますか? –