maven如何才能从战争文件中导入的项目构建战争?
我通过导入一个war文件创建了一个eclipse web项目。最初,战争文件中没有源代码。我想通过根据不同的配置文件动态改变一个属性文件的内容来从这个项目构建一个新的war文件,以便构建的war文件可以部署在不同的环境中(开发和生产)。maven如何才能从战争文件中导入的项目构建战争?
但是由于在原始war文件中没有源代码,因此在项目中没有源代码,在将此项目转换为maven项目并在pom.xml中将包装设置为war后,maven显示以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war >(default-war) on project birt: Error assembling WAR: webxml attribute is required (or pre->existing WEB-INF/web.xml if executing in update mode)
我假设这个错误是由于我的项目中没有这样的文件夹(/ src/main/webapp)造成的。我的项目的结构如下:
drwxrwxr-x 3 kewei kewei 4096 12 avril 15:55 build
-rw-rw-r-- 1 kewei kewei 375 12 avril 16:10 pom.xml
drwxrwxr-x 3 kewei kewei 4096 12 avril 15:54 src
drwxrwxr-x 5 kewei kewei 4096 12 avril 16:12 target
drwxrwxr-x 10 kewei kewei 4096 12 avril 15:55 WebContent
src文件夹里没有东西,一切都在WebContent文件夹中。
我可以通过更改属性文件并将项目导出到war文件(无需maven)来完成这项工作。但有没有更聪明的方法?
也许maven的目的不是为了做这种构建?在这种情况下,我如何通过根据不同配置文件动态更改属性文件的内容来构建不同的战争?
谢谢!
如果你真的很喜欢应对WebContent而不是maven方式,其中的一切都在src/main/webapp等之下,你可以改变maven-war-plugin的配置以适应你的需求。但我可以重新考虑只为第一步做配置。运行后,将项目布局更改为maven默认值(conventsions),使其更加轻松。
khmarbaise是正确的,但我非常强烈地建议,如果你打算使用Maven,那么你使用maven的约定来构造你的代码树。
Maven是一个神奇的工具,只要你做的一切正好,因为它想要你做的。如果你偏离了目标,有(或可能)解决方法来实现你的目标,但这通常是痛苦的。
使用maven-war-plugin的确解决了我的问题。我将WebContent设置为webResources并添加了一个根据我使用的配置文件动态更改属性文件内容的过滤器。非常感谢你们! – 2012-04-16 09:44:55