我有一个创建.war文件的现有Web应用程序。我想将目录结构转换为maven的约定。而且我有点失落。
特别是,由ant目标创建的当前.war不会在site / statics目录子树中复制到.war中的任何内容;这是由另一个不同的蚂蚁目标复制的。
但是如果我想从maven运行,例如jetty(我做!),我需要将site / statics / ** / 。复制到maven的{{1 }} 目录。鉴于maven的惯例,我不知道如何做到这一点。
感谢。
这是现有的目录结构,作为(抱歉)截图形式Eclipse:
答案 0 :(得分:6)
您最好遵循maven默认目录结构,或者如果您坚持使用自己的目录结构,则需要分别配置maven .pom文件。
默认Maven war插件目录结构解释here及其用法here。
默认情况下,$ {basedir} / src / main / webapp是你应该把jsp文件和其他静态或动态文件放到war目录root的地方。要更改此默认结构,您需要向pom添加一些配置。有关使用它们的示例,请查看this page和this page处提供的不同选项。
您可以在pom中使用以下设置,而不是使用脚本复制外部静态文件:
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>/absolute/path/to/external/static/</directory>
</resource>
</webResources>
</configuration>
</plugin>
...
</plugins>
目录可以是相对于你的pom的路径,也可以是绝对路径(这使得pom不可移植)或使用$ {xxx}进行参数化