maven webapp将jsps放在/ WEB-INF / jsp中

时间:2009-12-09 11:03:50

标签: java maven-2 web-applications

我继承了使用NetBean的内部蚂蚁构建的webapp。

所有jsps都位于:

WEB-INF/jsp

web.xml包含指向/WEB-INF/jsp/somefile.jsp的硬编码链接

如何使用maven war插件将JSP放在那里,保持与当前结构的一致性?

我的pom目前写着:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>

2 个答案:

答案 0 :(得分:12)

有什么问题?让我们看一下标准的战争项目结构:

$ mvn archetype:create -DgroupId=com.mycompany.app \
> -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp
...
$ tree my-webapp/
my-webapp/
|-- pom.xml
`-- src
    `-- main
        |-- resources
        `-- webapp
            |-- WEB-INF
            |   `-- web.xml
            `-- index.jsp

5 directories, 3 files 

无需配置任何内容,只需将您的JSP放在src/main/webapp/WEB-INF/jsp下,然后就可以了。

编辑:我不明白为什么你的maven-war-plugin配置中有以下行:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>

预期的行为是什么?为什么不使用默认值${basedir}/src/main/webapp

答案 1 :(得分:2)

另请注意,src / main / resources中的所有内容都将“在类路径上”,即,在构建战争时,所有内容都将复制到my-webapp / WEB-INF / classes。这是放置配置文件的好地方,例如log4j.xml / logback.xml,或Spring的applicationContext.xml和Spring的其他配置文件,然后您可以使用classpath轻松引用:somefile.xml。

这也是非常好的,你可以在maven中设置过滤器,以便在将文件放入war文件之前从src / resources转换文件。

因此,如果您在src / main / webapp / WEB-INF中有除web.xml之外的任何配置文件,请考虑将它们移动到src / main / resources目录。