2

私は長い間プロジェクトに一人で取り組んでいましたが、現在別の開発者が参加しているため、SVN から彼のマシンにプロジェクトをセットアップしたいと考えていました。両方とも非常によく似たセットアップを使用しています。

  • OS X Snow Leopard
  • 最新の Eclipse WTP
  • m2eclipse Maven プラグイン
  • 破壊的な SVN プラグイン
  • トムキャット 6.0.24

使用される Spring バージョンは 2.5.6 です。

Eclipse の「Project from SVN」ツールを使用して彼のマシンにプロジェクトをセットアップし、基本的にプロジェクトの 1:1 コピーを作成しました。私が知る限り、Maven はすべての依存関係を問題なく処理し、プロジェクトは問題なくコンパイルされました。プロジェクト構造は、src/main/resources のリソース (applicationContext.xml など)、src/main/java のプロジェクトのコード、および src/main/webapp と src のすべての Web アプリ関連ファイルを使用して、webapps の Maven 標準に従っています。 /main/webapp/WEB-INF それぞれ。

web.xml は、次のようにコンテキストをロードするように構成されています。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Eclipse の「サーバー」ツールを使用して、Eclipse から直接アプリケーションを起動しようとしましたが、applicationContext.xml をロードしようとすると、FileNotFoundException ですぐに失敗しました。

SVN からチェックアウトされたコードはそのまま残されているため、問題は Maven プラグインのパラメーターに関係していると思います。または、セットアップを完了するための重要なステップをいくつか忘れていました。誰かが同様の問題に遭遇したか、どこから始めるべきか考えていますか?

助けてくれてどうもありがとう!

4

2 に答える 2

3

プロジェクト構造は、src/main/resources のリソース (applicationContext.xml など)、src/main/java のプロジェクトのコード、および src/main/webapp と src のすべての Web アプリ関連ファイルを使用して、webapps の Maven 標準に従っています。 /main/webapp/WEB-INF それぞれ。

applicationContext.xmlこれは正しく、まったく問題ありません (をテスト クラス パスに配置したい場合)。

WEB-INF/classes にはコピーされませんが、私自身の (機能している) プロジェクトではそうではありません。代わりに、ファイルは Maven 標準に従って target/classes にコピーされます。

これは にコピーさ れますが、リソースの変更時に m2eclipse によってデフォルトで呼び出されるtarget/yourapp/WEB-INF/classesわけではありません (このゴールは、リソースを にコピー/フィルタリングします)。これは、フェーズ中(または明示的に 、またはを呼び出すとき) に発生します。使用方法のページで説明されているように、WAR プラグインは Java ソースのコンパイルやリソースのコピーを担当しませんprocess-resourcestarget/classespackagewar:warwar:inplacewar:exploded

packageしたがって、サーバー上で実行する前に戦争に提案します。おそらく、リソースの変更時にこれを自動的に行うように m2eclipse を構成できます (プロジェクトを右クリックし、[プロパティ] > [Mavenwar ] を選択して、適切なゴールを [リソースの変更時に呼び出すゴール] に追加します)。しかし、これを試しませんでした。

于 2010-02-03T15:28:31.577 に答える
1

サーバー プラグインを使用してアプリケーションを起動すると、Web フォルダーに必要なものがすべて含まれていることが想定されます。そのため、プロジェクトの出力フォルダーを (プロジェクトのビルド パス オプションから) 次のように構成する必要があります。src/main/webapp/WEB-INF/classes

または、 FileSyncプラグインを使用してファイルをコピーすることもできます。

ところで、Servers プラグインのオプションと、プロジェクトが「動的 Web プロジェクト」(つまり、デプロイ可能) であるかどうかを指定していませんでした。

于 2010-02-03T12:19:18.193 に答える