21

MavenとJSFwebappのディレクトリの構造をよく理解していません。

プロジェクトを生成するとき、私はこの構造を持っています:

src
|_ main
   |_ java
   |_ resources
   |_ webapp
      |_ WEB-INF 
         |_ web.xml
      |_ index.xhtml

いくつかのリソースを含めたい:

  • javascriptファイル
  • cssファイル
  • 画像
  • i18nファイル

i18nファイルを内部に含めることはできますsrc/main/resourcesが、どこにも含めることはできません。JSファイル、CSSファイル、および画像を内部に含めることはできますが、どこにも含めることはできsrc/main/webapp/resourcesません...

JSFとMavenを使用したディレクトリ構造について、Web上で明確なルールを見つけることができませんでした。

ルールは何ですか?

ありがとう

4

2 に答える 2

31

<h:outputStylesheet><h:outputScript>および<h:graphicImage>(つまり、CSS / JS / images)によって参照されるJSFリソース/resourcesは、パブリックWebコンテンツのフォルダーに配置される必要があります。ここには、/WEB-INFおよび/META-INFフォルダーもあります。

したがって、それらをに入れる必要があり/src/main/webapp/resourcesます。

src
 `-- main
      |-- java
      |-- resources
      `-- webapp
           |-- resources
           |    |-- css
           |    |    `-- style.css
           |    |-- images
           |    |    `-- logo.png
           |    `-- js
           |         `-- script.js
           |-- WEB-INF 
           |    `-- web.xml
           `-- index.xhtml

これらのi18nファイル(技術的にはリソースバンドルファイルを意味していると思います)は、最終的にはのパッケージに含まれる必要があります/WEB-INF/classes。は/src/main/resources、で終わることになっている非クラスファイルを対象としている/WEB-INF/classesので、そこに配置する必要があります。のバンドルベース名を想定して、次のcom.example.i18n.textように指定します。

src
 `-- main
      |-- java
      |-- resources
      |    `-- com
      |         `-- example
      |              `-- i18n
      |                   |-- text.properties
      |                   |-- text_en.properties
      |                   |-- text_es.properties
      |                   `-- text_nl.properties
      :                   

参照:

于 2012-11-24T12:27:27.357 に答える
1

css / imagesなどの最適な場所は、src / main / webapp/imagesまたはsrc/main / webapp / css /などです。現在、src / main / webapp/resourcesの場所はありません。src / main / resourcesフォルダーは、フィルター処理するか、WEB-INF / classesフォルダーに配置する必要があるリソース(プロパティファイルなど)を対象としています。したがって、通常、画像やcssファイルをフィルタリングするのは好きではありません。いくつかのヒントと構成例を提供するmaven-war-pluginのドキュメントを調べてください。最善のアプローチは、すべてをsrc / main / webapp / FOLDERに入れることであるように思われましたが、それ以外の場合はsrc / main / resourcesに入れる必要があり、フィルタリングと置換を制御できます。

于 2012-11-24T12:17:25.927 に答える