我有一个使用 maven(即 maven-war-plugin)构建的 Web 应用程序的情况。对于每次代码修改,我们都必须手动启动 maven 并重新启动应用程序服务器。现在,为了减少构建周期开销,我想使用 WTP 来发布 webapp。
现在,我们使用 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>
我是否需要重新配置这些资源以在其他地方处理,还是有更好的解决方案?