第3章 一个简单的Maven项目

来源:互联网 发布:淘宝设置优惠价格 编辑:程序博客网 时间:2024/05/16 04:48

来自《Maven权威指南》一书~

参考:

http://www.ibm.com/developerworks/cn/java/j-5things13/index.html

 

1 创建新的Maven项目

:Maven Archetype插件

mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook

2 mvn help:effective-pom

查看上级pom

3 插件:目标体系

比如archetype:create

4 生命周期:


  1. 验证:确保当前配置和 POM 的内容是有效的。这包含对 pom.xml文件树的验证。
  2. 初始化:在执行构建生命周期的主任务之前可以进行初始化。
  3. 生成源码:代码生成器可以开始生成在以后阶段中处理或编译的源代码。
  4. 处理源码: 提供解析、修改和转换源码。常规源码和生成的源码都可以在这里处理。
  5. 生成资源: 可以生成非源码资源。通常包括元数据文件和配置文件。
  6. 处理资源: 处理非源码资源。修改、转换和重定位资源都能在这阶段发生。
  7. 编译: 编译源码。编译过的类被放到目标目录树中。
  8. 处理类: 处理类文件转换和增强步骤。字节码交织器和常用工具常在这一阶段操作。
  9. 生成测试源码: mojo 可以生成要操作的单元测试代码。
  10. 处理测试: 在编译前对测试源码执行任何必要的处理。在这一阶段,可以测试 修改、转换或复制源代码。
  11. 生成测试资源: 允许生成与测试相关的(非源码)资源。
  12. 处理测试资源: 可以处理、转换和重新定位与测试相关的资源。
  13. 测试编译: 编译单元测试的源码。
  14. 测试: 运行编译过的单元测试并累计结果。
  15. 打包: 将可执行的二进制文件打包到一个分布式归档文件中,如JAR 或 WAR。
  16. 前集成测试: 准备集成测试。这种情况下的集成测试是指在一个受到一定控成测 制的模拟的真实部署环境中测试代码。这一步能将归档文件部署到一个服务器上执行。
  17. 集成测试: 执行真正的集成测试。
  18. 后集成测试: 解除集成测试准备。这一步涉及测试环境重置或重新初始化。
  19. 检验 检验可部署归档的有效性和完整性。过了这个阶段,将安装该归档。
  20. 安装 将该归档添加到本地 Maven 目录。这一步让其他可能依赖该归档的模块可以使用它。
  21. 部署 将该归档添加到远程 Maven 目录。这一步让这个工件能为更多的人所用。

Maven 从开源社区中汲取了十多年的项目构建管理经验。很难找到一个构建周期不符合表 1 中的生命周期阶段的软件项目。启动 Maven 2 引擎后,它会按顺序经历表 1 中的各阶段,执行可能与该阶段绑定的 mojo。每个 mojo 则可以使用 Maven 2 丰富的 POM 支持、依赖项管理,也可以访问执行这一专门任务时的构建状态信息。调用 Maven 2 引擎时,可以将一个生命周期阶段指定为命令行参数。该引擎一直执行到指定的阶段(包括该指定的阶段)。包含的阶段中所有的 mojo 都会被触发。

所以,mvn package命令,就像是依次执行如下命令:

mvn resources:resources compiler:compile resources:testResources compiler:testCompile surefire:test jar:jar

5 坐标:

groupId 组 ID:代表制造该工件的实体或组织。例如,com.xiaonei 就是一个组 ID

artifactId工件 ID:实际的工件的名称。例如,主体类名为 OpsImp 的项目也许会用 OpsImp 作为其工件 ID。

version版本 :该工件的版本号。支持的格式为 mmm.nnn.bbb-qqqqqqq-dd,其中, mmm 是主版本号, nnn 是次版本号, bbb 代表其 bug 修复水平。 qqqqq (限定词)或 dd (构建号)也能添加到版本号中,这两项是可选。

packaging 项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用。不是项目唯一标识符的一个部分。

6 对象/操作模型:

7 查看依赖树

mvn dependency:tree

树形结构打印依赖关系,可以避免冲突。dependency 节点下添加 exclusions 节点

原创粉丝点击