使用Maven设置标准目录布局

时间:2010-07-26 20:07:09

标签: maven-2 standards conventions directory-structure

我是Maven的新手,并在http://docs.jboss.org/hibernate/stable/core/reference/en/html_single/#tutorial-firstapp-mvn处遵循Hibernate教程时浏览了文档。

我已经安装了Maven并成功设置了一个web-app,但这并不包含本教程中提到的所有标准目录。我疯了吗?

在构建我的Maven项目时,我正在使用maven-archetype-webapp。这给了我arh-webapp\src\main\resourcesarh-webapp\src\main\webapp目录,但我遗漏了链接http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html上提到的很多目录。

当然我不必手动添加这些?如果没有,那么Hibernate文档没有提到要使用什么原型来实现他们的教程中使用的目录结构。请有人开导我。

为了拥有上述目录和src/main/java目录,我需要使用哪种原型?如果没有这样的原型,那么可以使用Maven轻松附加这些原型吗?怎么样?

2 个答案:

答案 0 :(得分:2)

当然你必须手动添加这些。

只需创建根据Maven约定缺少的目录。请记住,Maven Archetype只是节省配置工作空间时间的起点。在我自己遇到一些Archetypes中的许多问题后,我已经习惯于只使用一个基本的web-app-archetype然后自己定制它,作为Maven的初学者你会做得更好,并且会学到很多东西。

问候。

答案 1 :(得分:1)

并非所有提到的目录都是标准Web应用程序所必需的。事实上,存在src / main / java,src / main / resources和src / main / webapp目录背后的原因是由于您使用过的原型。

恕我直言,这本名为“Better Builds with Maven”的书将更好地为你服务; Sonatype books on Maven也可能有所帮助。完整的Maven documentation也可作为PDF文件提供,以供将来参考。

但是为了以防万一,您需要对使用的术语有一些清晰度,这里有一些:

原型:项目的模式。简单的Web应用程序(不依赖于其他框架/库)有自己的原型,使用Spring,Hibernate,Seam等的应用程序也是如此。一些原型将导致创建不同的目录,因为它们以这种方式编码。在大多数情况下,您可以更改目录结构,但我无法保证每个原型。例如,很可能将源放在'src'而不是'src / main / java'中,尽管这需要在POM中进行额外的配置。

生命周期,阶段和目标:Maven构建生命周期是一系列阶段,每个阶段都执行一组目标。可以命令Maven执行构建阶段,这将导致执行所有阶段,直到并包括指定的阶段。

Maven插件:Maven插件包含一个或多个目标。目标不需要绑定到阶段,但通常会将它们绑定到特定阶段。插件是Maven中所有操作的基础;你正在使用插件,即使你只是编译应用程序(Maven编译器插件是Maven发行版中的核心插件)。

我希望上述内容有所帮助,但我建议遵循参考书。