web-dev-qa-db-ja.com

Java MavenおよびEclipseを使用した動的Webプロジェクト

Java MavenとEclipseを使用したWebアプリケーションの作成についていくつかの質問があります。

  • Java Webプロジェクトをサーブレット、jsp、およびMavenを含む他のクラスで作成するにはどうすればよいですか?
  • Src-> main-> Javaという単純なディレクトリ構造を作成します。 web-infフォルダーはどこにどのように配置しますか?
  • Jdbc-driversをweb-inf/lib内のフォルダーに手動で追加する必要がありますか、それとも依存関係を指摘するだけでいいですか?
  • Junitでサーブレットをテストする方法はありますか?
28
Artem Moskalev

うわー、それは一度にたくさんの質問です。 MavenとEclipseでwebappプロジェクトをセットアップするのは難しいかもしれないので、それらすべてに答えようとします。

Mavenを使用してWebアプリケーションプロジェクトを作成する

Javaサーブレットjspおよびmavenを含む他のクラスを含むWebプロジェクトを作成するにはどうすればよいですか?src-> main-> Javaという単純なディレクトリ構造を作成します。

Java Webプロジェクトを作成する場合、最終製品はWARまたはEARファイルである必要があります。WARおよびEARファイルは、アプリケーションサーバーまたはサーブレットにデプロイできる特定の構造を持つJARファイルです。容器。

前述のとおり、Webアプリケーション用にMavenプロジェクトをセットアップする最も簡単な方法は、アーキタイプを使用することです。

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp

このアーキタイプでプロジェクトを作成すると、単純なディレクトリ構造とpom.xmlが生成されます。このプロジェクトは、/src/main/Java//src/test/Javaなどを使用して、言及した標準のMavenディレクトリレイアウトに従います。Mavenは、war:warゴールを使用してこの構造からWARファイルを生成します。

このアーキタイプは非常に単純な(古い)Webアプリケーション用ですが、利用可能な最良の出発点であることに注意してください。 web.xmlファイルを破棄し、Servlet 3.0をサポートする新しいファイルを作成することをお勧めします。

WEB-INFの場所

Web-infフォルダーはどこにどのように配置しますか?

デフォルトでは、MavenはWARファイルのルートにあるリソース(画像、htmlページ、WEB-INFディレクトリなど)が/src/main/webapp/にあると想定しています。 したがって、WEB-INFフォルダーは/src/main/webapp/WEB-INF/に配置する必要があります。maven-archetype-webappを使用する場合、このディレクトリは自動的に作成されます。サンプルweb.xmlファイル。

Eclipse統合

質問のタイトルでEclipseについて言及しましたが、m2Eclipseプラグインを使用してEclipseでMavenized Webアプリケーションを開発することは確かに可能です。 Eclipseは、WTP(Web Tools Platform)を介してWebアプリケーションを適切にサポートしています。

インターネット上の多くのガイドが(間違って)推奨していますが、Eclipseプロジェクトの作成にmvn Eclipse:eclipseコマンドを使用しないでください。このプラグインは、非常に古いEclipseバージョンのWTPプロジェクトのみを生成できます(WTP 2.0が最大です)。代わりに、 here の説明に従ってm2Eclipseプラグインを使用してください。

依存関係

Jdbc-driversをweb-inf/lib内のフォルダーに手動で追加する必要がありますか、それとも依存関係を指摘するだけでいいですか?

Mavenの主な長所の1つは依存関係管理であるため、これを手動で行う必要はありません。 compileまたはruntimeのスコープでpom.xmlに依存関係を追加すると、JARファイルが自動的に含まれますWARファイルのWEB-INF/lib/ディレクトリ。たとえば、Postgresql JDBCドライバーの依存関係を追加するには、これをpom.xmlに追加します。

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901.jdbc4</version>
</dependency>

スコープは指定されていないため、Mavenはデフォルトのスコープcompileにあると想定します。その結果、MavenはWEB-INF/lib/postgresql-9.1-901.jdbc4.jarをWARファイルに含めます。

テスト中

Junitでサーブレットをテストする方法はありますか?

この質問は、Stackoverflowで質問(および回答)されています。

参照資料

65
tboerman

使用しているデフォルトのものではなく、webapp Mavenアーキタイプに基づいてプロジェクトを作成する必要があります。

SpringSource Tool Suiteを使用しています。この演習では、m2eを使用するEclipseと同じです。新しいMavenプロジェクトを作成し、必ず次のアーキタイプを選択してください。

enter image description here

これを行うMavenコマンドラインの方法は次のとおりです。

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

このアーキタイプは、WEB-INFフォルダーを正しい場所(src/main/webappの下)に配置します。

詳細は http://maven.Apache.org/guides/mini/guide-webapp.html で見つけることができます。

10
Jonathan W

通常の「動的Webプロジェクト」を作成するだけです。次に、プロジェクト名を右クリックし、[構成]> [Mavenプロジェクトに変換]を選択します。変換が完了するまで最大1分かかる場合があるため、しばらくお待ちください。次の記事を参照してください。

http://aykutakin.wordpress.com/2013/12/04/create-Eclipse-dynamic-web-project-with-maven-2/

うまくいかない場合は、これを試してください:

http://crunchify.com/how-to-create-dynamic-web-project-using-maven-in-Eclipse/

8
AndroidDev
  • ステップ1:Webアプリフォルダーを作成します。
  • 手順2:コマンドプロンプトでそのフォルダーに移動します。
  • ステップ3:次のコマンドを使用します。

mvn archetype:generate -DgroupId = com.helloworld -DartifactId = HelloWorldDemo -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false

DarchetypeArtifactId = maven-archetype-webappは、Maven Webプロジェクトを作成します。

  • ステップ4:コマンドプロンプトでプロジェクトフォルダー内に移動し、次のコマンドを使用します:mvn Eclipse:eclipse -Dwtpversion=2.0プロジェクトをEclipseの動的Webプロジェクトにするために、この新しく作成されたプロジェクトを「Ëxistingproject」としてインポートします

Eclipseのm2Eclipseプラグインを使用して、eclipeでMAVENを有効にします。

Web.xml\ src\main\webapp\WEB-INFにあります

3
Jyoti Prakash