我继承了使用NetBean的内部蚂蚁构建的webapp。
所有jsps都位于:
WEB-INF/jsp
web.xml包含指向/WEB-INF/jsp/somefile.jsp的硬编码链接
如何使用maven war插件将JSP放在那里,保持与当前结构的一致性?
我的pom目前写着:
<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>
答案 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目录。