javax.faces-2.1.14.jar と jsf-api-2.2.0-m05.jar の違いと jsf-impl-2.2.0-m05.jar の間で混乱しています。使用せずに jsf プロジェクトを作成しようとしています。 maven と例を探しているときに、さまざまなチュートリアルでさまざまな jar 依存関係を見ました。coreservletsのチュートリアルでは javax.faces-2.1.14.jar を使用し、別のサイトで見た他のチュートリアルでは jsf-api-2.2.0-m05.jar と jsf-impl-2.2.0-m05 の 2 つの jar ファイルを使用しています。 jar Id は、これら 2 つの依存関係セットの違いを知りたいです。よろしくお願いします。
2 に答える
jsf-api-xxx.jar
パッケージjavaパッケージの下にあるクラスが含まれていますjavax.faces
。このjar内のクラスは、JSF仕様で定義された標準APIの実装です。には、javaパッケージのjsf-impl-xxx.jar
下にあるクラスが含まれていますcom.sun.faces
。これは、javaパッケージが示すように、JSF実装用のSun独自のクラスです。
javax.faces-xxx.jar
実際には、前の2つのjarファイルをマージします。Mavenリポジトリでは、org.glassfish
groupIdの下にあります。javax.faces
中にはとcom.sun.faces
javaパッケージの両方があります。
では、開発には何を使用する必要がありますか?実際には両方を使用できます。ただし、推奨される方法はjsf-api-xxx.jar
、コンパイルクラスパスにのみ含めることです。したがって、独自のアプリケーションは、他のJSF実装への移植性com.sun.faces
を実現するために、パッケージ内のクラスに依存しません。GlassFishなどのアプリケーションを使用している場合、コンテナは実行時にJSF実装をすでに提供している必要があります。上記のJSFjarファイルをwarファイルまたはearファイルと一緒にパッケージ化しないでください。サーバーがそれらすべてを提供します。TomcatなどのデフォルトでJSF実装が付属していないコンテナを使用する場合は、にパッケージまたは(+ )を含める必要があります。javax.faces-xxx.jar
jsf-api-xxx.jar
jsf-impl-xxx.jar
WEB-INF/lib
それらは異なるバージョンです。
- javax.faces-2.1.14.jarは、2.1.14用の結合されたJARファイルです。
- jsf-api-2.2.0-m05.jarとjsf-impl-2.2.0-m05.jarは、2.2.0-m05用の個別のJARです。
バージョン間の違いはリリースノートに記載されていますが、2.2と2.1は自明ではありません。