【问题标题】:Setting up a standard directory layout using Maven使用 Maven 设置标准目录布局
【发布时间】:2011-03-21 07:05:45
【问题描述】:

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

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

在构建我的 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 轻松附加这些原型吗?以及如何?

【问题讨论】:

    标签: maven-2 standards conventions directory-structure


    【解决方案1】:

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

    只需根据 Maven 约定创建那些缺少的目录。请记住,Maven Archetype 只是节省您配置工作区时间的起点。在我自己在一些 Archetypes 中遇到了很多问题之后,我已经习惯了只使用 basic-web-app-archetype 然后自己自定义它,作为 Maven 的初学者,你最好这样做,并且会学到很多东西。

    问候。

    【讨论】:

    • 干杯好学的约瑟夫。感谢您的建议。很高兴知道其他人遇到了问题。我意识到我可以自己添加这些目录,但我注意到使用标准原型我可以生成 web 原型构建中缺少的其他目录。我想知道是否存在结合两种标准目录结构的原型。我想我问了很多。如果我不能轻易实现我的目标,我很难理解 Maven 的意义。 :-)
    • 这里 docs.codehaus.org/display/MAVENUSER/Archetypes+List 是 Maven 原型的列表。尝试查看其中是否有任何真正实现了您在应用中寻找的内容:)
    【解决方案2】:

    并非所有提到的目录都是标准 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 发行版中存在的核心插件)。

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

    【讨论】:

    猜你喜欢
    • 2011-06-03
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2012-10-02
    • 2014-04-26
    • 2017-05-06
    • 2011-07-20
    • 2011-05-06
    相关资源
    最近更新 更多