乐趣区

关于maven:稀小饭初识Maven

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 文件任何赋值的地位。

退出移动版