3

Google-Eclipseプラグインを使用して新しいWebアプリケーションプロジェクトを作成すると、次のようなプロジェクトディレクトリ構造全体が作成されます。

src/
    META-INF/
        jdoconfig.xml
        persistence.xml
war/
    WEB-INF/
        lib/
        web.xml
        ...etc.

まず、私の理解では、それMETA-INF/はユーティリティJAR専用であり、Webアプリ(WAR)用ではありませんでした。それでsrc/META-INF/*、プロジェクトで見ることは私を驚かせました。しかし、そのようにパッケージ化されたGAEWebアプリの例を見てきました。

TheWebApp.war/
    WEB-INF/
        lib/
        classes/
            META-INF/
        web.xml
        ...
    blah.jsp
    ...etc/

WEB-INF/classes/META-INF/!これに加えて、GAEプロジェクトとディレクトリについての言及はありません。MANIFEST.MFこれらは常に。の下にパッケージ化されて使用されていMETA-INFます。今、私は本当に混乱しています。

META-INFしたがって、最初に、その役割と一般的な役割について確認/明確化する必要があると思います。次に、WebアプリケーションのWARWEB-INFでそれらを一緒に使用する方法を理解し、次に、GAEがその上に置く特異性(存在する場合)を理解します。 WAR構造。

注:私はMavenを使用しておらず、少なくとも次の6〜12か月は使用するつもりはありません(今はそれを学ぶ時間がありません)。したがって、これらの質問に対する回答のいずれかが、Mavenベースのbuldを使用しているかどうかによって異なる場合は、Ant / Ivyを使用しているので、Maven以外の回答をお勧めします。

だから私は尋ねます:

  1. META-INFユーティリティ(ライブラリ)JAR、実行可能JAR、およびWARの場合、ディレクトリの通常の内容は何ですか?MANIFEST.MFWAR(GAEと非GAEの両方)に必要ですか、なぜですか、なぜそうではありませんか?
  2. ランタイムクラスパスで利用できるように、Web以外のリソースをどこに配置する必要がありますか?たとえば、私が持っていると言うenvironment.propertiesmyapp-custom-resource-config.xml...これらをどこに置くのですか?、、?WEB-INF/_ WEB-INF/classes_ WEB-INF/classes/META-INF何処か別の場所?
  3. GAEプロジェクトWEB-INFMETA-INFディレクトリの適切な内容は何ですか?また、それらをパッケージ化する正しい方法は何ですか?

前もって感謝します。

4

1 に答える 1

0

JAR ファイルの META-INF ディレクトリと同様に、ルートレベルの /META-INF ディレクトリにはアプリケーション マニフェスト ファイルが含まれます。また、特定の Web コンテナーまたはアプリケーション サーバーのリソースを含めることもできます。たとえば、Apache Tomcat は、このディレクトリ内の context.xml ファイルを探して使用し、アプリケーションが Tomcat にデプロイされる方法をカスタマイズします。

JAR ファイルとは異なり、ルートレベルの /META-INF ディレクトリはアプリケーションのクラスパスにはありません。ClassLoader を使用して、このディレクトリ内のリソースを取得することはできません。ただし、/WEB-INF/classes/META-INF はクラスパスにあります。必要なアプリケーション リソースをこのディレクトリに配置すると、ClassLoader を介してアクセスできるようになります。

于 2014-07-17T19:19:54.767 に答える