`

Maven 标准目录结构

阅读更多

Maven 标准目录结构

好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下:

src/main/java Application/Library sources
src/main/resources Application/Library resources
src/main/filters Resource filter files
src/main/assembly Assembly descriptors
src/main/config Configuration files
src/main/scripts Application/Library scripts
src/main/webapp Web application sources
src/test/java Test sources
src/test/resources Test resources
src/test/filters Test resource filter files
src/site Site
LICENSE.txt Project's license
NOTICE.txt Notices and attributions required by libraries that the project depends on
README.txt

Project's readme

使用目录模板,可以使 pom.xml 更简洁。因为 Maven2 已经根据缺省目录,预定义了相关的动作,而无需人工的干预。以 resources 目录为例:

  • src/main/resources,负责管理项目主体的资源。在使用Maven2执行compile之后,这个目录中的所有文件及子目录,会复制到target/classes目录中,为以后的打包提供了方便。
  • src/test/resources,负责管理项目测试的资源。在使用Maven2执行test-compile之后,这个目录中的所有文件及子目录,会复制到target/test-classes目录中,为后续的测试做好了准备。

这些动作在 Maven1 中,是需要在 maven.xml 中使用<preGoal>或<postGoal>来完成的。如今,完全不需要在pom.xml中指定就能够自动完成。在src和test都使用resources,方便构建和测试,这种方式本就已是前人的经验。通过使用Maven2,使这个经验在开发团队中得到普及。

创建标准目录模板,可以通过如下命令:

mvn archetype:create -DgroupId=com.codeline.commons -DartifactId=codelineCommons

groupId和artifactId的含义与Maven1中的含义一样,参数artifactId的值会作为项目根目录的名字。除了建立相应的目录之外,Maven2还会创建缺省的pom.xml。

Maven2也考虑到:不同类型的项目需要拥有不同的目录结构。如创建web项目,可以使用命令:

mvn archetype:create -DgroupId=com.mycompany.app
-DartifactId=my-webapp
-DarchetypeArtifactId=maven-archetype-webapp

Maven 生命周期

Maven生命周期已经在另一篇博客中介绍过了(http://www.cnblogs.com/haippy/archive/2012/07/04/2576453.html),这里引用IBM developerworks 的文章再一次讨论Maven 的生命周期。

在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:

  • validate,验证工程是否正确,所有需要的资源是否可用。
  • compile,编译项目的源代码。
  • test-compile,编译项目测试代码。
  • test,使用已编译的测试代码,测试已编译的源代码。
  • package,已发布的格式,如jar,将已编译的源代码打包。
  • integration-test,在集成测试可以运行的环境中处理和发布包。
  • verify,运行任何检查,验证包是否有效且达到质量标准。
  • install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
  • deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
  • generate-sources,产生应用需要的任何额外的源代码,如xdoclet。

如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test。

 

文章出处:http://www.cnblogs.com/haippy/archive/2012/07/05/2577233.html

分享到:
评论

相关推荐

    idea创建maven web项目标准结构源码

    idea创建maven web项目标准结构源码,可以启动,就是一个原型文件。

    apache-maven-3.5.4 for Linux Download

    开发团队可以自动完成项目的基础工具建设,Maven 使用标准的目录结构和默认构建生命周期。 在多协作的开发团队环境中工作时,Maven 可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,...

    maven课程讲义.doc

    关于maven的学习资料Maven是apache下的开源项目,项目管理工具,管理java项目。... 强调:maven工程有自己标准的工程目录结构、定义坐标有标准。 5、maven 管理项目生命周期过程都是基于插件完成的

    maven相关资料

    开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用...

    个人Maven学习笔记

    开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,...

    apache-maven-3.6.3.zip

    开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。 在有多个开发团队环境的情况下,Maven 能够在很短的时间内使得每项工作都按照标准...

    Maven2 的新特性.7z

    Maven2根据业界公认的最佳目录结构,为开发者提供了缺省的标准目录模板。Maven2的标准目录结构如下: 使用目录模板,可以使pom.xml更简洁。因为Maven2已经根据缺省目录,预定义了相关的动作,而无需人工的干预。...

    maven入门到精通

    maven入门到精通 用 Maven 做项目管理 在 Java世界中我们很多的开发人员选择用 Ant来构建项目,一个 build.xml... Pear 已经成为 PHP 开发事实上的标准,而 Maven 在 Java 世界的地位也逐渐加强,成为标准指日可待。

    apache-maven-3.5.4

    Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

    maven3.5.3

    开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用...

    apache-maven-3.3.9.zip

    开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用...

    Maven安装与配置教程.pdf

    Maven使用了一个标准的目录结构,这使得在不同开发工具中也能实现项目结构的统一。它提供了清理、编译、测试、安装、打包、发布等命令,使得项目构建更为方便。同时,Maven通过pom.xml文件来导入依赖,可以自动下载...

    maven入门操作

    开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。 在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用...

    maven创建多模块web项目.docx

    该步骤会依次生成项目的各个模块,但是生成的模块并没有 创建依赖,只是最简单的并且符合maven 要求的项目结构的模块,关于什么是 maven 的标准项目结构,可以参考 maven 官方文档,或者《 maven 权威指南》。

    maven最新教学文档

    maven就是为了解决这些问题的,在跨平台(Linux、Windows、Mac)的基础上,使用Archetype完成各种项目统一的骨架,还进行标准化的构建过程,包含了包版本管理、库依赖、集成测试、编译、安装、运行等。

    maven安装与配置 docx

    Maven是一个项目构建及管理工具,开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置, Maven 使用了一个标准的目录结构在不同开发工具中也能实现项目结构的统一。Maven提供了清理,编译,测试,安装,...

    Maven项目管理

    Maven是一个管理和整合工具,Maven为开发者提供了一整套的构建生命周期框架。开发团队几乎不用花多少时间就能自动完成工程的基础构架配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。

    Maven项目管理工具

    Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

Global site tag (gtag.js) - Google Analytics