Maven

Maven的作用:我的项目构建,依赖治理。
文章借鉴了菜鸟教程Maven相干的内容,链接为Maven教程。

1、我的项目对象模型POM(Project Object Model)

蕴含4个局部:

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

2、Maven的生命周期

  • clean

    革除上次构建生成的文件

    • 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

    建设和公布我的项目站点

    • 1)`pre-site:生成我的项目站点之前须要实现的工作
    • 2)`site:生成我的项目站点文档
    • 3)post-site:生成我的项目站点之后须要实现的工作
    • 4)site-deploy:将我的项目站点公布到服务器

3、Maven仓库

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

搜寻程序:本地-->近程-->地方

4、我的项目模板

Maven 应用原型 archetype插件创立自定义的我的项目构造,造成Maven我的项目模板。原型即为一个我的项目模板,例如要创立一个简略的helloworld我的项目,则执行mvn命令应用DarchetypeArtifactId=maven-archetype-quickstart参数,创立原型为maven-archetype-quickstart的我的项目。

5、构建简略的java我的项目

mvn archetype:generate-DgroupId=com.companyname.bank-DartifactId=consumerBanking-DarchetypeArtifactId=maven-archetype-quickstart    //我的项目原型-DinteractiveMode=false   //是否交互模式,区别于批处理模式

6、引入内部依赖

间接在pom.xml中增加依赖的参数。

7、依赖治理

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:用于排除或蕴含某些资源文件

9、Maven中POM的3种关系

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

10、Maven的属性

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