2

コマンドライン手順でMaven Webプロジェクトを作成しました。Eclipse Indigoにm2e, WTP,tomcatプラグインがインストールされています。m2eプラグインを介してプロジェクトをEclipseにインポートしました。これらをノード 内
のmavenに追加しましたsettings.xml<servers>

<server>
        <id>tomcatserver</id>
        <username>admin</username>
        <password>adminadmin</password>
</server>  

私のtomcat-users.xml中で私は持っています

<tomcat-users>
<user name="admin" password="adminadmin" roles="admin-gui,manager-gui" />
</tomcat-users>  

私のpom.xml中で私は持っています

<build>
    <finalName>FirstWebApp</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <configuration>
                     <server>tomcatserver</server>
                     <path>/FirstWebApp</path>
            </configuration>
        </plugin>
    </plugins>
  </build>  

今すぐ私のプロジェクトを右クリックしてください-> Run as -> Maven build

今はうまくいきませんでした。つまり、Run as -> Run on Server オプションの下に表示されませんでした。だから私は

right click on project -> properties -> project facets -> selected Dynamic web module, java, javascript

Maven はプロジェクト自体をビルドしました。今Run on Server登場。welcome-file-listアプリケーションを実行すると、正常に実行されましたが、 of にある index.jsp が表示されませんでしたweb.xml

プロジェクトに赤い十字マークの四角が表示されます。Error PagesDeployment Descriptor ヘッダーの下 をクリックすると、次のように表示されます。

Resource '/FirstWebApp/WebContent/WEB-INF/web.xml' does not exist.  

Mavenプロジェクトを作成したときに存在していたため、実際には存在しません

/src/main/webapp/WEB-INF/web.xml  

そしてそれはまだそこに存在しています。私の index.jsp も webapp ディレクトリ内に存在します。
問題はどこだ ?今、私はMaven Webプロジェクトのディレクトリ構造について完全に混乱しています。
私の Web プロジェクトのディレクトリ構造について誰か説明してくれませんか。ここにあります:

->src
    ->main
        resources
        ->webapp
            index.jsp
            ->WEB-INF
                web.xml
->target
    -> it's sub-directories
->WebContent
    ->META-INF
    ->WEB-INF
        lib

これは私にかなりの頭痛を与えています。Eclipse で Maven Web プロジェクトを開発する正しい方法を教えてください。

そして、POJO、サーブレット、およびその他のクラスをこの構造の どこに配置すればよいでしょうか。

どうもありがとう

4

2 に答える 2

2

Eclipse WTP は、maven とは異なるファイル システム レイアウトの規則を使用します。たとえば、WTP は、jsp ページと構成が WebContent にあることを想定しています。これは変更できますが、さまざまなプロジェクト プロパティ設定を変更する必要があります。

この問題を解決する最速の方法は、m2e を使用する eclispe 内から Maven Web プロジェクトを作成することです。これにより、maven と eclipse の両方に対して正しく構成された wtp プロジェクトを取得できます。次に、新しいプロジェクトでコードを適切な場所にコピーします。src/main/webapp に配置する Web コンテンツに配置するものはすべて、Java コードが src/main/java に配置されます。Maven ディレクトリ規則について読むことをお勧めします。

Maven と Eclipse を適切に動作させるために理解したい基本的な概念は、Eclipse と Maven の両方がプロジェクト構成を担当しようとし、それが問題につながるということです。したがって、maven が設定できるすべてのプロジェクト設定のソースとして maven を使用する必要があります。たとえば、maven は、プロジェクトが動的 Web モジュールであるかどうか、および使用する Java コンパイラのレベルを Eclipse に伝えることができます。 Maven が構成できる設定には、maven を使用します。Eclipse ソース・コード・フォーマッターなど、maven が構成できない設定については、Eclipse プロジェクト・プロパティーを使用してそれらの設定を設定します。

WTP と Maven のもう 1 つの大きな違いは、WTP はサーバーが構成されていることを想定しており、プロジェクトごとにプロジェクトにターゲット ランタイムがあると想定しているため、サーブレット API などを解決できることです。一方、Maven は、プロジェクトを実行するアプリケーション サーバーに依存せずにプロジェクトをコンパイルおよびビルドする必要があることを期待しているため、サーブレット API、jsp API jar などの Maven の中心的なものから API jar に依存関係を設定する必要があります。 .etc.そして、それらが提供されたスコープでマークされることを期待しています。例えば。

<dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <scope>provided</scope>
        <version>2.2.1</version>
</dependency>
于 2013-02-16T16:00:09.133 に答える
2

最新の Eclipse バージョン (Indigo または Juno) を使用している場合は、おそらくm2e-wtpプラグインもインストールする必要があります。これは、Maven 構成と、WTP がプロジェクト レイアウトを期待する方法との間を橋渡しします。

http://www.eclipse.org/m2e-wtp/

この質問は、あなたがやろうとしていることと似ていますが、プロジェクト構造の設定方法について詳しく説明しています: Maven/Tomcat Projects In Eclipse Indigo/3.7

于 2013-02-17T10:50:44.690 に答える