我通过导入war文件创建了一个eclipse web项目。最初,war文件中没有源代码。我想通过根据不同的配置文件动态更改一个属性文件的内容,从这个项目构建一个新的war文件,这样构建的war文件可以部署在不同的环境中(开发和生产)。
但由于原始war文件中没有源代码,因此项目中没有源代码,将此项目转换为maven项目,并在pom.xml中将打包设置为war后,maven显示以下错误:
[错误]无法在项目birt上执行目标org.apache.maven.plugins:maven-war-plugin:2.1.1:war>(default-war):组装WAR时出错:需要webxml属性(或如果在更新模式下执行,则预先>现有的WEB-INF / web.xml
我认为这个错误是由于我的项目中没有这样的文件夹(/ 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目标
drwxrwxr-x 10 kewei kewei 4096 12 avril 15:55 WebContent
src文件夹中没有任何内容,所有内容都在WebContent文件夹中。
我可以通过更改属性文件并将项目导出到war文件(不使用maven)来完成这项工作。但是有更聪明的方法吗?
也许maven不是为了做这种构建而设计的?在这种情况下,如何根据不同的配置文件动态更改属性文件的内容来构建不同的战争?
谢谢!
答案 0 :(得分:1)
如果您真的想要应对WebContent而不是maven方式,其中所有内容都在src / main / webapp等下,您可以更改maven-war-plugin的配置以根据需要进行更改。但我可以重新配置只为第一步做配置。在它运行之后将项目的布局更改为maven默认值(convents),从而使生活更轻松。
答案 1 :(得分:1)
khmarbaise是对的,但我强烈建议如果你要使用Maven,那么你可以使用maven的约定来构建代码树。
Maven是一个很棒的工具,只要你按照自己的意愿完成完全的所有工作。如果你偏离,有(或可能)工作来实现你的目标,但通常会很痛苦。