0

我通过导入一个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 不是为了做这种构建而设计的?在这种情况下,如何根据不同的配置文件动态更改属性文件的内容来构建不同的战争?

谢谢!

4

2 回答 2

1

如果您真的喜欢处理 WebContent 而不是所有内容都在 src/main/webapp 等下的 maven 方式,您可以更改maven-war-plugin的配置以根据您的需要进行更改。但我可以建议只为第一步进行配置。在它运行之后,将项目的布局更改为 maven 默认值(约定),因为它让生活更轻松。

于 2012-04-12T20:43:15.957 回答
1

khmarbaise 是对的,但我强烈建议如果您要使用 Maven,那么您可以使用 maven 的约定来构建您的代码树。

Maven 是一个很棒的工具,只要您按照它想要的方式做所有事情。如果你偏离了,有(或可能有)变通办法来实现你的目标,但通常会很痛苦。

于 2012-04-13T01:38:09.393 回答