18

m2eclipseを使用して、Maven Java プロジェクトを Eclipse にインポートします。

src/main/webappソースディレクトリとして認識されません。

パッケージ エクスプローラーでグラフィカルに (またはプロジェクトのプロパティでJava-Build-Pathを調べると)、
このディレクトリはソース フォルダーのリストにありません (whilesrc/main/javaまたはsrc/main/resourcesdo)。

アクセスするには、src/ ディレクトリを直接調べて、展開を開始する必要があります...あまり便利ではありません。

ただし、 を実行するmaven installと、リソースは正しいディレクトリにコピーされます。
(例: src/main/webapp/index.jsptarget/mywar/index.jsp)

質問

  1. これは正しい動作ですか? (他の資源として扱えると思っていたのですが…)
  2. 直せますか?
  3. この状況には、私が今気づいていない他の欠点があるのだろうか?
4

10 に答える 10

7
  1. これは正しい動作ですか? (他の資源として扱えると思っていたのですが…)
  2. 直せますか?
  3. この状況には、私が今気づいていない他の欠点があるのだろうか?
  1. はい、私にとってこれは正しい動作です。
  2. src/main/webapp がソース フォルダーであることは実際には意味がありません。コンパイル可能なソース ファイルが含まれていません。
  3. 知らない。私はそれがあなたの期待に依存すると思います:)

src/main/webappそうは言っても、m2eclipse は、次のような特定の「Web リソース」ラベルを使用してトップレベルで利用できるようにする貢献をしました。

代替テキスト

これはあなたの懸念の解決策になる可能性があります(便利な折りたたみではありません)。

于 2009-11-02T22:51:29.173 に答える
6

/src/main/webapp をソース フォルダーとして Java ビルド パスに追加する代わりに、展開アセンブリに含めるフォルダーとして追加します。

MyProject -> properties -> Deployment Assembly: "/src/main/webapp" deploy を "/" に追加します。

于 2013-12-04T09:50:53.740 に答える
5

Mavenに関する限り、src/main/webapp内容がコンパイル/コピーされないという意味でソースフォルダーではないtarget/classesため、m2eclipseの観点からは、これは正しい動作です。src/main/webapp を Eclipse ソース フォルダーとしてマークする必要がある特定の理由はありますか?

于 2009-11-02T15:39:47.833 に答える
2

src/main/webapp私の場合、Eclipseは Web Resources フォルダーとして認識できませんでした。私はそれを解決しました:

  1. プロジェクトの削除
  2. 日食の再開
  3. SVN から Maven プロジェクトの新しい更新を取得します。
于 2011-01-25T13:46:14.020 に答える
2

多くの回答ではsrc/main/webapp、JSP ファイルはコンテナーによってコンパイルされ、ビルド サイクル中に Maven ではないため、ソース フォルダーとして使用しても意味がないと主張しています。

ただし、セキュリティ テストを行っている場合は意味があります。

セキュリティ スキャン ツールの中には、IDE に統合できるプラグインを提供するものがあります。これにより、開発チームはコードをローカルでスキャンし、マシンの基本的な脆弱性を修正できるため、セキュリティ チームの作業量が減り、より高度なテストに取り組むことができます。

Eclipse がこの特定のディレクトリを除外するという事実は、大きな問題です。そうすることで、セキュリティ ツールはデフォルトでwebapp/ディレクトリをスキャン プロセスに含めず、その結果、偽陰性(ツールによって報告されない実際の脆弱性) が発生します。この動作により、開発チームは、(たとえば) JSP ページがセキュリティの観点から安全であると考えるようになります。

セキュリティ テスト チームが、開発チームが実施したスキャンに注意を払わないと (ローカルで実行されたスキャンを確認できない場合もあります)、webapp/フォルダに含まれるコードに脆弱性がある製品がリリースされる可能性が高くなります。

したがって、この動作はセキュリティの観点からは意味がなく、意味があると主張する人々はいくつかの点を見逃しています。

いずれにせよ、--> -->src/main/webapp/で右クリックしてフォルダーをビルドパスに追加することで、この問題を解決しました。package explorerbuild pathuse as source folder

于 2019-04-04T09:42:19.397 に答える
2

src/main/webapp を Eclipse src フォルダーとしてマークするだけです。

webapp フォルダーを右クリック --> ビルド パス --> ソース フォルダーとして使用

醜いハックなしでこの動作を簡単に変更できるとは思わないでください.srcマーキングは、クラスパスなどを構成するために使用するEclipse固有のものです.

于 2009-11-02T15:27:02.783 に答える
1

1 つの解決策は、ビルド ヘルパー maven プラグインの m2e サポートを活用し、追加のリソース パスとして src/main/webapp を宣言することです。これにより、Eclipse は保存されたリソースをビルド ターゲット フォルダー構造にコピーします。

        <!-- help eclipse identify the webapp folder as a resource folder: -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/webapp</directory>
                                <targetPath>${project.build.directory}/${project.build.finalName}</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
于 2017-09-11T02:56:06.120 に答える
0

Nestor の言いたいことは、冗談ではありません。これは単なるコンパイラではなく、エンドツーエンドの開発環境です。これは、JSP から POM ファイルなどの構成を構築するための構築に寄与するすべてのソース アーティファクトのインターフェイスとして意図されています。XML や JSP エディターがコンパイル可能でない場合、なぜ Eclipse はこれらのエディターをわざわざ用意するのでしょうか? --ちなみに、これは非常に便利です。

Eclipse 用の Maven プラグイン (またはその逆) は、.classpath、.project、および Eclipse で Maven プロジェクトの作業をすぐに開始するために必要なその他の構成を構築するため、非常に優れています。ただし、Eclipse 構成 (つまり、mvn eclipse:eclipse) が生成されるたびに、サポートされていないディレクトリーを手動で追加する必要があります。それは大きな問題です。

これらのプラグインが、IDE 内から表示可能な新しいソース フォルダーを簡単に追加する機能を無視しているという事実は、私にとって謎です。1 つの maven/eclipse プラグイン プロジェクト ページでは、プロジェクトの種類を切り替えてプラグインをだますことで、これらのソースを一時的に利用できるようにするための回避策についても言及しています。もちろん、すぐに元に戻すか、ビルドを破損する必要があります。

.classpath のソース宣言を独立して制御する機能を作成しないのはなぜですか?

于 2010-07-04T15:23:24.710 に答える
0

私が直面していた同じ問題のまったく別の理由を見つけました - パッケージ エクスプローラーに src/main/webapp が表示されません。

POMまたはEclipse(SpringSource Suite 3.5.0を使用)がmavenプロジェクトをロードできることとは何の関係もないことが判明しました。

問題は、私の src/main/webapp/Scr​​ipts/ フォルダー内に .git および .gitignore ファイルがあることでした。Eclipse が "." で始まるファイル名を処理できなかったのではないかと思います。webapp フォルダーにあります。私はこの理論を複数のプロジェクトでテストしましたが、これまでのところ支持されているようです。

これが役立つことを願っています。

于 2014-04-25T17:57:51.370 に答える
0

理由が思いつきます。

Eclipse で GWT プロジェクトを開発するために Maven を使用しています。私の構成では、src/main/webapp ディレクトリには、"コンパイル可能な" ファイルではありませんが、開発作業の一環として参照する必要がある HTML および CSS ファイルが含まれています。

src/ フォルダーに飛び込むのではなく、それらに直接アクセスできることはプラスです。POM で定義してそのように設定すると、eclipse:eclipse を実行するたびに手動でフォルダーを追加し続ける必要がなくなります。

于 2010-07-01T18:07:11.563 に答える