稀小饭初识Maven

Maven

Maven的做用:项目构建,依赖管理。
文章借鉴了菜鸟教程Maven相关的内容,连接为 Maven教程

一、项目对象模型POM(Project Object Model)

图片来源于网络

包含4个部分:html

  • POM关系
  • 构建设置
  • 构建环境
  • 项目信息

二、Maven的生命周期

  • cleanjava

    清除上次构建生成的文件shell

    • 1)pre-clean:执行清理前须要完成的工做
    • 2)clean:清理上一次构建生成的文件
    • 3)post-clean:执行清理后须要完成的工做
  • default服务器

    构建项目,重要的phase以下:网络

    • 1)validate:验证工程是否正确,全部须要的资源是否可用。
    • 2)compile:编译项目的源代码。
    • 3)test:使用合适的单元测试框架来测试已编译的源代码。这些测试不须要已打包和布署。
    • 4)package:把已编译的代码打包成可发布的格式,好比jar。
    • 5)integration-test:若有须要,将包处理和发布到一个可以进行集成测试的环境。
    • 6)verify:运行全部检查,验证包是否有效且达到质量标准。
    • 7)install:把包安装到maven本地仓库,能够被其余工程做为依赖来使用。
    • 8)deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其余的开发者或者工程能够共享。
  • site框架

    创建和发布项目站点maven

    • 1)`pre-site:生成项目站点以前须要完成的工做
    • 2)`site:生成项目站点文档
    • 3)post-site:生成项目站点以后须要完成的工做
    • 4)site-deploy:将项目站点发布到服务器

三、Maven仓库

仓库:项目所依赖的第三方库存放的位置
  • 本地(local)
  • 远程(remote)
  • 中央(central)

搜索顺序:本地-->远程-->中央post

四、项目模板

Maven 使用原型 archetype插件建立自定义的项目结构,造成Maven项目模板。原型即为一个项目模板,例如要建立一个简单的helloworld项目,则执行mvn命令使用DarchetypeArtifactId=maven-archetype-quickstart参数,建立原型为maven-archetype-quickstart的项目。单元测试

五、构建简单的java项目

mvn archetype:generate

-DgroupId=com.companyname.bank

-DartifactId=consumerBanking

-DarchetypeArtifactId=maven-archetype-quickstart    //项目原型

-DinteractiveMode=false   //是否交互模式,区别于批处理模式

六、引入外部依赖

直接在pom.xml中添加依赖的参数。测试

七、依赖管理

Maven拥有对依赖的传递机制,例如B依赖于A,C依赖于B,则C依赖A,maven会管理这种依赖传递的关系。

8 、Maven自动化部署

部署步骤

一般在项目的开发的过程当中,部署包括如下步骤:

  • 将项目代码提交到SVN或者其它代码库中并打上标签;
  • 从SVN下载完整的项目代码;
  • 使用Maven构建应用;
  • 把构建好的WAR或JAR包文件存储到经常使用的网络位置下;
  • 从网络上获取文件并部署到生产站点上;
  • 更新文档和应用版本号。

自动部署

maven-release-plugin插件能够实现自动部署,部分参数以下:

  • scm配置SVN的路径,Maven将从该路径下将代码取下来。
  • repository构建的WAR或EAR或JAR文件的位置,或者其余源码构建成功后生成的构件的存储位置。
  • plugin配置maven-release-plugin插件来实现自动部署过程。
  • resources:用于排除或包含某些资源文件

九、Maven中POM的3种关系

  • 依赖关系:<dependencies><dependency>标签;
  • 继承关系:<parent>标签,子pom文件能继承父pom的依赖;
  • 聚合关系:<modules>标签,将多个maven的项目聚合为一个大的项目。

十、Maven的属性

Maven的属性是值得占位符,如${X},可用于pom文件任何赋值的位置。

相关文章
相关标签/搜索