我有一個使用maven構建的web應用程序(即maven-war-plugin)的情況。對於每個代碼修改,我們必須手動啓動maven並重新啓動應用程序服務器。現在,爲了減少構建週期開銷,我想使用WTP來發布webapp。用m2eclipse和WTP一起構建WAR(處理webResources)
現在,我們使用Maven進行資源處理,並且在構建webapp時,我們在POM中定義了一些額外的Maven任務。因此m2eclipse似乎是一個自然的解決方案。
我已經得到足夠多,Maven構建器正在運行這些任務並正確過濾資源。但是,當我選擇「在服務器上運行」時,WAR文件看起來並不像我在Maven中構建它時那樣。
我是猜測這是因爲WTP實際上構建的是WAR,而不是m2eclipse構建器。所以即使我們在我們的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>
我是否需要重新配置這些資源在其他地方處理,或者是有沒有更好的解決辦法?
謝謝!在這種情況下,我最終使用了線程中的hack。 – waxwing 2010-05-18 13:58:01