学习--maven 学习

Apache Maven的定义

Maven 是一个项目管理工具,它包含:

  1. 一个项目对象模型 (Project Object Model)
  2. 一组标准集合
  3. 一个项目生命周期(Project Lifecycle)
  4. 一个依赖管理系统(Dependency Management System)
  5. 用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

Maven 遵循约定优于配置的概念,它给项目提供一系列的默认行为。 在没有自定义的情况下:

  • 源代码假定是在 ${basedir}/src/main/java,
  • 资源文件假定是在 ${basedir}/src/main/resources 。
  • 测试代码假定是在 ${basedir}/src/test/java。
  • 编译好的字节码放到 ${basedir}/target/classes 
  • 创建一个可分发的JAR文件在 ${basedir}/target

Maven的核心插件使用了一组通用的约定,以用来编译源代码,打包可分发的构件,生成web站点,还有许多其他的过程。

Maven有一个定义好的生命周期和一组知道如何构建和装配软件的通用插件。如果你遵循这些约定,Maven 只需要几乎为零的工作——仅仅是将你的源代码放到正确的目录,Maven 将会帮你处理剩下的事情。当然,如果你不想遵循约定,Maven也会允许你自定义默认值来适应你的需求。

Maven的基础

  1. Maven使用入门
    1. 编写POM(Maven项目的核心是pom.xml)
      1. groupId:定义当前 Maven 项目隶属的实际项目 

      2. artifactId:该元素定义实际项目中的一个 Maven 项目(模块),推荐的做法是使用实 际项目名称作为artifactId 的前缀,比如上例中的 artifactId 是 nexus-indexer,使用了 实际项目名 nexus 作为前缀,这样做的好处是方便寻找实际构件
      3. version:该元素定义 Maven 项目当前所处的版本,如上例中 nexus-indxer 的版本是2.0.0packaging:该元素定义 Maven 项目的打包方式。
      4. classifier:该元素用来帮助定义构建输出的一些附属构件
    2.  

    3. 典型的Maven运行:
      1. mvn clean compile
      2. mvn clean test
      3. mvn clean package
      4. mvn clean install
    4. 借助maven-shade-plugin插件生成可执行的jar文件
      1. plugin元素在POM中的相对位置应该在<project><build><plugins>下面
    5. 使用Archetype生成项目骨架
      1. mvn archetype:generate
  2. 坐标和依赖
      1. 依赖范围与 classpath 的关系 

         

        依赖范围 (Scope)

        对于编译 classpath 有效

        对于测试 classpath 有效

        对于运行时 classpath 有效

        例子

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值