maven学习之二(概念组成)

一个maven项目由一个pom文件和源代码组成.

POM:项目对象模型,定义了整个maven项目信息,包括类型,名称,包含的依赖,自定义插件行为.如在上一篇的demo中的pom.xml如下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sam.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>my-app</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

麻雀虽小,五脏俱全。这个自动生成的POM文件包含了最基本的元素:

  • project :根元素
  • modelVersion 这个是固定的model版本
  • groupId 组织的Id,用于区分,for example org.apache.maven.plugins 就是所有maven插件的groupId
  • artifactId 具体的项目Id,最后生成的jar包名称格式: <artifactId>-<version>.<extension> (for example, myapp-1.0.jar).
  • packaging 打包的类型(e.g. JAR, WAR, EAR, etc.). 
  • version 版本号
  • name 项目名
  • url 如果有的话
  • description 简单描述


生命周期:一个项目构建的一系列阶段:

  • validate: 确认整个项目是否正确,必要的信息是否可用
  • compile: 编译项目源代码
  • test: 用常用的单元测试框架测试源代码,这些测试不用被打包或部署,故分为一个阶段
  • package: 打包编译好的文件为,jar或者war
  • integration-test:部署包到运行环境中进行集成测试
  • verify: 验证包的有效性,符合质量标准
  • install: 安装包到本地仓库,以便其他项目可以利用
  • deploy: 部署
  • clean: 清理之前的构建
  • site: 生成站点文档

当我们运行>mvn package时,jar:jar目标被绑定到打包阶段,,而在这之前又有resources:resources=>compiler:compile=>resources:testResource=>compile:testCompile和surefire:test这些目标按生命周期的顺序被运行了



插件:其中的archetype就是插件 ,create则是插件的一个目标.一个插件有多个目标,maven有很多的插件,如Jar.Compiler,Surefire,Hibernate3,ruby,还可以自定义插件.

目标:目标表示一个明确的任务,要做什么

比如要让项目可以导入到eclipse,可以

mvn eclipse:eclipse
如果是IntelliJ IDEA,也有相应的

mvn idea:idea

插件:其中的archetype就是插件 ,create则是插件的一个目标.一个插件有多个目标,maven有很多的插件,如Jar.Compiler,Surefire,Hibernate3,ruby,还可以自定义插件.

目标:目标表示一个明确的任务


( ~/.m2/repository  is the default location)


插件:其中的archetype就是插件 ,create则是插件的一个目标.一个插件有多个目标,maven有很多的插件,如Jar.Compiler,Surefire,Hibernate3,ruby,还可以自定义插件.

目标:目标表示一个明确的任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值