2010-07-26 50 views
2

我是Maven的新手,并且已经浏览了文档,因为我遵循Hibernate教程http://docs.jboss.org/hibernate/stable/core/reference/en/html_single/#tutorial-firstapp-mvn使用Maven设置标准目录布局

我已经安装了Maven,并成功地设置了一个web应用程序,但是这并没有包含教程中提到的所有标准目录。我会生气吗?我正在使用maven-archetype-webapp构建我的Maven项目。这给了我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轻松追加这些原型?如何?

回答

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等的应用程序也是如此。一些原型会导致创建不同的目录,因为它们是以这种方式编码的。在大多数情况下,您可能可以更改目录结构,但我无法保证每个原型。例如,尽管这需要在POM中进行额外的配置,但很有可能将源代码放在'src'而不是'src/main/java'中。

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

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

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

+0

嗨维尼特雷诺兹 欣赏文档参考。我发现下面的链接已经回答了我的问题:http://maven.apache.org/guides/mini/guide-creating-archetypes.html。我需要构建包含我的其他目录的描述符。我明天会设置这个,因为我已经在今晚的这段时间花了太多时间了.-) – AndyRED 2010-07-26 20:59:56

2

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

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

问候。

+0

干杯StudiousJoseph。欣赏建议。很高兴知道别人遇到过问题。我意识到我可以自己添加这些目录,但我注意到使用标准原型我可以生成Web原型构建中缺少的其他目录。我想知道是否有一个兼有两种标准目录结构的原型。我想我问了很多。如果我无法轻松实现目标,我很难看到Maven的观点。 :-) – AndyRED 2010-07-26 20:41:29

+0

这里http://docs.codehaus.org/display/MAVENUSER/Archetypes+List是一个Maven原型列表。尝试看看是否有这些实际上完成了你在你的应用程序中寻找的东西:) – 2010-07-26 20:56:45

+0

再次感谢。时间做一些严肃的阅读我认为:-) – AndyRED 2010-07-27 19:09:00