全是干货:Apache Maven及项目对象模型(POM)核心内容

这是一个Maven快速入门教程…或者学习总结…请耐心阅读…

1.关于Maven

Apache Maven 是一个流行的Java项目管理(包括依赖管理)及自动构建工具,它基于项目对象模型(Project Object Model),能利用主要信息管理一个项目的构建、报道和文档等步骤。借助Maven,我们使用无非是提升我们管理项目的效率,学习时也可以更好的理解项目管理的流程。本文会使用相对原始的方法cmd使用Maven,显然这对理解Maven的运作是非常有用的,其后我们会使用IDE(Eclipse和IDEA都支持Maven)集成的Maven,这会非常方便,也是我们对效率的追求,但本文所介绍的内容是前提。

2.Maven的安装

2.1安装

Windows安装:去Apache Maven官网下载zip,解压到想安装的目录,配置bin环境变量。
在cmd里运行mvn -v,查看到版本,即安装成功。
Linux安装:类似

2.2目录结构

Maven的目录结构可以参考Java,在lib里的jar包可以说明他是Java程序,且对于Java项目来说,它依赖JDK。

2.3仓库

说到仓库,不就是放东西的地方吗?对的,在使用mvn构建项目时,Java项目(包括Maven自己用到的功能,不是吗)所需要的jar包,例如JDBC,我们编写程序时使用的是Java提供的接口API,但程序运行时,需要支持的数据库厂商提供实现这些接口的jar包,Maven的仓库就是存放这些jar包的地方,mvn是如何找jar包的呢?答案是按坐标(参见:3.3)搜索,首先会搜索本地仓库,然后去搜索私服镜像,最后是官方中央仓库(啥都有)。由于官方仓库比较慢,我们需要配置私服镜像和本地仓库,找到安装目录conf下的settings.xml
在根标签settings中配置

<localRepository>你想配置的本地仓库地址(例如:D/Maven/repo)</localRepository>
<mirrors>
    <!-- 私服镜像-->
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

2.4小试牛刀

现在我们来试试Java项目的构建与运行,这个过程遇到不懂的先忽略,cmd切换到你想存放项目的目录,在cmd中运行如下代码来构建一个demo项目:

mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.gogo.build -DartifactId=demo

运行后,程序会下载一些pom和jar包等文件到本地仓库,现在你可去您的仓库看看,点进去直到你找到一个jar包,好了就当无事发生。回到控制台,遇到的第一个选择是生成项目的类型,第二个选择是定义项目的版本,第三个选择是确认配置,我们依次回车选择默认,如果看到绿色的BUILD SUCCESS,说明我们使用archetype内置模板成功构建了一个简单的Java项目,接下来cd demo进入项目目录,运行tree命令得到:

D:.
└─src
    ├─main
    │  └─java
    │      └─com
    │          └─gogo
    │              └─build
    └─test
        └─java
            └─com
                └─gogo
                    └─build

main和test下的目录结构是不是似曾相识,看看build下的App.java,这就是一个最简单的java项目,现在我们编译运行一下,只需在cmd(同样在项目目录demo中)中运行:

mvn clean compile exec:java -Dexec.mainClass="com.gogo.build.App"

等待程序下载一些依赖到本地仓库,结束时,细心的你看见了输出的‘Hello World!’了吗?现在再tree一下看看目录结构发生了什么变化

D:.
├─src
│  ├─main
│  │  └─java
│  │      └─com
│  │          └─gogo
│  │              └─build
│  └─test
│      └─java
│          └─com
│              └─gogo
│                  └─build
└─target
    ├─classes
    │  └─com
    │      └─gogo
    │          └─build
    └─maven-status
        └─maven-compiler-plugin
            └─compile
                └─default-compile

在target下的得build就是编译好的Java字节码文件,当然了它可以直接运行。

3.项目对象模型(POM)

猜猜我们刚刚生成的项目里的pom.xml是什么?

3.1构建项目的生命周期

生命周期(lifecycle)由多个阶段(phase)组成,每个阶段有一个或多个目标(goal),一个目标是mvn的最小任务单元,简化的默认生命周期从校验到部署如下:

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值