翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
プロジェクトフォルダーを構築する
Tomcat サーバーにデプロイされた場合に機能するように、コンパイルされた Java プラットフォーム Enterprise Edition (Java EE) ウェブアプリケーションアーカイブ (WAR ファイル) は、特定のガイドライン
次の推奨階層では、ウェブアプリケーションのソースコードは、[src
] ディレクトリに配置され、構築スクリプトや構築スクリプトが生成する WAR ファイルから隔離されます。
~/workspace/my-app/
|-- build.sh - Build script that compiles classes and creates a WAR
|-- README.MD - Readme file with information about your project, notes
|-- ROOT.war - Source bundle artifact created by build.sh
`-- src - Source code folder
|-- WEB-INF - Folder for private supporting files
| |-- classes - Compiled classes
| |-- lib - JAR libraries
| |-- tags - Tag files
| |-- tlds - Tag Library Descriptor files
| `-- web.xml - Deployment Descriptor
|-- com - Uncompiled classes
|-- css - Style sheets
|-- images - Image files
|-- js - JavaScript files
`-- default.jsp - JSP (JavaServer Pages) webpage
[src
] フォルダの内容は、サーバーにパッケージングしてデプロイする内容と一致します([com
] フォルダは例外です)。com
フォルダには、コンパイルされていないクラス (.java
ファイル) が含まれます。これらをコンパイルし、アプリケーションコードからアクセスできるように WEB-INF/classes
ディレクトリに配置する必要があります。
WEB-INF
ディレクトリには、ウェブサーバー上でパブリックに動作しないコードや設定が含まれます。ソースディレクトリのルートの他のフォルダ (css
、images
、js
) はウェブサーバー上の対応するパスで一般公開されます。
次の例は、前述のプロジェクトディレクトリと同一ですが、ファイルとサブディレクトリの数が多い点のみが異なります。このプロジェクト例には、シンプルなタグ、モデル、サポートクラス、さらに record
リソースのための Java サーバーページ(JSP)が含まれます。さらに、Bootstrap
[WEB-INF/lib
] には、PostgreSQL の Java Database Connectivity(JDBC) ドライバを含む Java アーカイブ (JAR) ファイルが含まれます。クラスファイルがまだコンパイルされていないため、[WEB-INF/classes
] は空です。
~/workspace/my-app/
|-- build.sh
|-- README.MD
|-- ROOT.war
`-- src
|-- WEB-INF
| |-- classes
| |-- lib
| | `-- postgresql-9.4-1201.jdbc4.jar
| |-- tags
| | `-- header.tag
| |-- tlds
| | `-- records.tld
| `-- web.xml
|-- com
| `-- myapp
| |-- model
| | `-- Record.java
| `-- web
| `-- ListRecords.java
|-- css
| |-- bootstrap.min.css
| `-- myapp.css
|-- images
| `-- myapp.png
|-- js
| `-- bootstrap.min.js
|-- 404.jsp
|-- default.jsp
`-- records.jsp
シェルスクリプトを使用して WAR ファイルを構築する
[build.sh
] は、Java クラスをコンパイルする非常にシンプルなシェルスクリプトです。また、WAR ファイルを構築してローカルテストのために Tomcat の [webapps
] ディレクトリにコピーします。
cd src
javac -d WEB-INF/classes com/myapp/model/Record.java
javac -classpath WEB-INF/lib/*:WEB-INF/classes -d WEB-INF/classes com/myapp/model/Record.java
javac -classpath WEB-INF/lib/*:WEB-INF/classes -d WEB-INF/classes com/myapp/web/ListRecords.java
jar -cvf ROOT.war *.jsp images css js WEB-INF
cp ROOT.war /Library/Tomcat/webapps
mv ROOT.war ../
WAR ファイルでは、前述の例の [src
] ディレクトリ ([src/com
] フォルダを除きます) に存在する同じストラクチャを探します。jar
コマンドは自動的に META-INF/MANIFEST.MF
ファイルを作成します。
~/workspace/my-app/ROOT.war
|-- META-INF
| `-- MANIFEST.MF
|-- WEB-INF
| |-- classes
| | `-- com
| | `-- myapp
| | |-- model
| | | `-- Records.class
| | `-- web
| | `-- ListRecords.class
| |-- lib
| | `-- postgresql-9.4-1201.jdbc4.jar
| |-- tags
| | `-- header.tag
| |-- tlds
| | `-- records.tld
| `-- web.xml
|-- css
| |-- bootstrap.min.css
| `-- myapp.css
|-- images
| `-- myapp.png
|-- js
| `-- bootstrap.min.js
|-- 404.jsp
|-- default.jsp
`-- records.jsp
.gitignore
を使用する
コンパイルされたクラスファイルと WAR ファイルが Git レポジトリにコミットされる、または Git コマンドの実行時にこれらのファイルに関するメッセージが表示されることを防ぐため、プロジェクトフォルダの .gitignore
という名前のファイルに関連ファイルタイプを追加します。
~/workspace/myapp/.gitignore
*.zip
*.class