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.glassfishgroupIdの下にあります。javax.faces中にはとcom.sun.facesjavaパッケージの両方があります。
では、開発には何を使用する必要がありますか?実際には両方を使用できます。ただし、推奨される方法はjsf-api-xxx.jar、コンパイルクラスパスにのみ含めることです。したがって、独自のアプリケーションは、他のJSF実装への移植性com.sun.facesを実現するために、パッケージ内のクラスに依存しません。GlassFishなどのアプリケーションを使用している場合、コンテナは実行時にJSF実装をすでに提供している必要があります。上記のJSFjarファイルをwarファイルまたはearファイルと一緒にパッケージ化しないでください。サーバーがそれらすべてを提供します。TomcatなどのデフォルトでJSF実装が付属していないコンテナを使用する場合は、にパッケージまたは(+ )を含める必要があります。javax.faces-xxx.jarjsf-api-xxx.jarjsf-impl-xxx.jarWEB-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は自明ではありません。