1

mavenを使用して構築されたWebアプリケーション(つまり、maven-war-plugin)がある状況があります。コードを変更するたびに、手動でMavenを起動し、アプリケーションサーバーを再起動する必要がありました。ここで、ビルドサイクルのオーバーヘッドを減らすために、WTPを使用してWebアプリを公開したいと思います。

これで、Mavenを使用したリソース処理が可能になり、Webアプリを構築するときにPOMで定義された追加のMavenタスクがいくつかあります。したがって、m2eclipseは自然な解決策のようです。

Mavenビルダーがこれらのタスクを実行し、リソースを正しくフィルタリングしていることを十分に理解しました。ただし、「サーバーで実行」を選択すると、WARファイルはMavenでビルドした場合とは異なります。

これは、 M2eclipseビルダーではなく、WTPが実際にWARをビルドするためだと思います。そのため、POMでmaven-war-pluginを構成したとしても、それらの設定は使用されません。

以下は、maven-war-plugin構成のスニペットです。「webResources」で構成されているものは取得されず、次のように表示されます。

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-alpha-2</version>
<configuration>
 <outputDirectory>${project.build.directory}</outputDirectory>
 <workDirectory>${project.build.directory}/work</workDirectory>
 <webappDirectory>${project.build.webappDirectory}</webappDirectory>
 <cacheFile>${project.build.webappDirectory}/webapp-cache.xml</cacheFile>
 <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
 <nonFilteredFileExtensions>
  <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
  <nonFilteredFileExtension>png</nonFilteredFileExtension>
  <nonFilteredFileExtension>gif</nonFilteredFileExtension>
  <nonFilteredFileExtension>jsp</nonFilteredFileExtension>
 </nonFilteredFileExtensions>
 <webResources>
 <!-- Add generated WSDL:s and XSD:s for the web service api. -->
   <resource>
   <directory>${project.build.directory}/jaxws/wsgen/wsdl</directory>
   <targetPath>WEB-INF/wsdl</targetPath>
   <filtering>false</filtering> 
   <includes>
     <include>**/*</include>
   </includes>
 </resource>               
 </webResources>
 </configuration>

これらのリソースを他の場所で処理するように再構成する必要がありますか、それともより良い解決策がありますか?

4

3 に答える 3

2

他の誰かが同じ問題に遭遇した場合に自分の質問に対する答えを記入するために、私は自分のWebアプリケーションプロジェクトに次のものを追加することになりました。

<resource>
  <directory>${project.build.directory}/jaxws/wsgen/wsdl</directory>
  <filtering>true</filtering>
  <targetPath>${project.basedir}/src/main/webapp/WEB-INF/wsdl</targetPath>
  <includes>
    <include>**/*</include>
  </includes>
</resource>

resources下の要素内build)。

私のWSDLファイルはgenerate-resourcesフェーズで生成され、に配置されるため、正常に機能しtarget/jaxws/wsgen/wsdlます。次に、それらはに移動されsrc/main/webapp/WEB-INF/wsdl、WARファイルをビルドするときにWTPビルダーがそれらを取得します。

mvn eclipse:eclipse注:ターゲットパスに絶対パスを設定することは許可されていないため、MavenのEclipseプラグインで問題が発生することに注意してください(つまり、 )。まだ満足のいく回避策が見つかりません...

于 2010-05-18T14:03:42.983 に答える
1

(フィルタリングされた)Webリソースがまだサポートされているかどうかはわかりません。MNGECLIPSE-1149を参照してください。この問題には、問題が解決する可能性のあるパッチ(および回避策)があります。このスレッドからのハックも見てください。

于 2010-05-18T11:05:46.083 に答える
1

WebResourcesは、m2e-wtp 0.12以降のバージョン(Eclipse HeliosおよびIndigoと互換性があります)でサポートされています。

詳細については、http://community.jboss.org/en/tools/blog/2011/05/03/m2eclipse-wtp-0120-new-noteworthyを参照してください。

于 2011-12-20T09:06:12.893 に答える