将现有的web-app文件结构转换为maven文件结构?

时间:2010-11-23 19:50:38

标签: directory maven structure web-applications

我有一个创建.war文件的现有Web应用程序。我想将目录结构转换为maven的约定。而且我有点失落。

特别是,由ant目标创建的当前.war不会在site / statics目录子树中复制到.war中的任何内容;这是由另一个不同的蚂蚁目标复制的。

但是如果我想从maven运行,例如jetty(我做!),我需要将site / statics / ** / 复制到maven的{{1 }} 目录。鉴于maven的惯例,我不知道如何做到这一点。

感谢。

这是现有的目录结构,作为(抱歉)截图形式Eclipse:

1 个答案:

答案 0 :(得分:6)

您最好遵循maven默认目录结构,或者如果您坚持使用自己的目录结构,则需要分别配置maven .pom文件。

默认Maven war插件目录结构解释here及其用法here

默认情况下,$ {basedir} / src / main / webapp是你应该把jsp文件和其他静态或动态文件放到war目录root的地方。要更改此默认结构,您需要向pom添加一些配置。有关使用它们的示例,请查看this pagethis 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}进行参数化