Java MavenとEclipseを使用したWebアプリケーションの作成についていくつかの質問があります。
うわー、それは一度にたくさんの質問です。 MavenとEclipseでwebappプロジェクトをセットアップするのは難しいかもしれないので、それらすべてに答えようとします。
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フォルダーはどこにどのように配置しますか?
デフォルトでは、MavenはWARファイルのルートにあるリソース(画像、htmlページ、WEB-INFディレクトリなど)が/src/main/webapp/
にあると想定しています。 したがって、WEB-INFフォルダーは/src/main/webapp/WEB-INF/
に配置する必要があります。maven-archetype-webappを使用する場合、このディレクトリは自動的に作成されます。サンプルweb.xmlファイル。
質問のタイトルで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で質問(および回答)されています。
使用しているデフォルトのものではなく、webapp Mavenアーキタイプに基づいてプロジェクトを作成する必要があります。
SpringSource Tool Suiteを使用しています。この演習では、m2eを使用するEclipseと同じです。新しいMavenプロジェクトを作成し、必ず次のアーキタイプを選択してください。
これを行う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 で見つけることができます。
通常の「動的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/
mvn archetype:generate -DgroupId = com.helloworld -DartifactId = HelloWorldDemo -DarchetypeArtifactId = maven-archetype-webapp -DinteractiveMode = false
DarchetypeArtifactId = maven-archetype-webappは、Maven Webプロジェクトを作成します。
mvn Eclipse:eclipse -Dwtpversion=2.0
プロジェクトをEclipseの動的Webプロジェクトにするために、この新しく作成されたプロジェクトを「Ëxistingproject」としてインポートしますEclipseのm2Eclipseプラグインを使用して、eclipeでMAVENを有効にします。
Web.xmlは\ src\main\webapp\WEB-INFにあります