【手把手教你Maven】构建过程
来源:互联网 发布:网络安全工程入门书籍 编辑:程序博客网 时间:2024/05/17 05:03
【手把手教你Maven】构建过程
Maven是一款进行 依赖管理、项目构建、信息管理 为一体的工具。
它不像Make具有复杂的命令、也不像Ant需要手动编写大量的重复代码就能进行项目的构建;
还能提供强大的依赖库管理,避免jar包混乱与冲突;
还可以方便的管理项目的信息、知识产权等内容。
本篇的写作目的在于帮助那些之前没有使用过,或者是对maven还没有太多概念的朋友,学会使用maven,利用maven进行项目的构建。
通过讲解Maven的下载、安装、编写、执行任务,快速体验Maven的工作模式与使用技巧…
下载
目前高版本的Eclipse已经集成了Maven,但是考虑到插件的稳定性,还是推荐使用自己安装的Maven(需要在Eclipse中进行绑定)。
手动安装需要在官网下载Maven,目前最新的版本是3.3.9:http://maven.apache.org/download.cgi
一般windows下的用户下载这个zip就可以了,如果要学习源码,可以下载src那版的。
安装
1 首先需要安装JDK,在命令行中输入java -version验证版本:
2 然后解压下载好的压缩包:
3 配置环境变量
在“环境变量”中配置:
M2_HOME:xxxx/apache-maven-3.3.9在path中添加:";%M2_HOME%/bin"
4 在命令行中输入 mvn -v测试
编写
如果使用过Ant都知道Ant是通过build.xml执行构建任务的,Maven中是通过pom.xml来执行任务。
POM,project object model,即项目对象模型,它通过这个pom.xml描述一个项目的构建以及信息。
<?<?xml version="1.0" encoding="UTF-8"?><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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xinoo.test</groupId> <artifactId>first-maven</artifactId> <version>1.0-SNAPSHOT</version> <name>First Maven Project</name></project>
第一行指定了文档的XML版本和编码
第二行即每个pom.xml的核心元素——project
project下面有几个子元素,这几个子元素一般是每个项目都会使用到的:
1 modelVersion 这个元素指定了POM的版本,Maven2或者Maven3 都只能是4.0.0
2 groupId 是项目组的ID,一般是com.公司组织名.项目名
3 artifactId 是该项目在项目组中的ID,比如当前的项目是项目组的一个代理项目,就可以叫做myproxy
4 version 是项目的版本号,用于维护项目的升级和发布
5 name 一般没有实际的用处,只是用于标识该项目
比较重要的参数是 groupId、artifactId、version,这三个属性确定唯一的一个项目。
执行任务
一般的Maven项目会包含这样一个目录树:
project |-src--main--java--你的源代码 | |--test----java--你的单元测试代码 |-target--编译出的文件和jar包 |-pom.xml--项目信息以及任务定义
因此我们在上面的pom.xml同级目录中,创建
src/main/java/com/xingoo/test/firstmaven 文件夹
然后再该文件夹中创建HelloWorld.java
package com.xingoo.test.firstmaven;public class HelloWorld{ public String sayHello(){ return "Hello Maven"; } public static void main(String[] args){ System.out.println(new HelloWorld().sayHello()); }}
然后再pom.xml所在的目录中运行mvn clean compile命令:
会发现目录中多了一个target文件夹,文件夹中增加了两个文件夹:
其中classes中是java编译出的class文件、maven-status是依赖的compile插件。
参考
【1】最后的任务执行样例:百度云盘文件mvn1127.zip
【2】《Maven实战》:百度云盘文件Maven实战教程
- 【手把手教你Maven】构建过程
- 手把手教你maven+sonar:项目部署
- 手把手教你玩转Maven
- 手把手教你mysql(十四)存储过程
- 手把手教你构建自己的CocoaPods仓库
- 手把手教你整合 SpringMvc+Spring+MyBatis+Maven
- 手把手教你创建maven的web3.0项目
- 手把手教你批处理
- 手把手教你做小抄
- 手把手教你申请专利
- 手把手教你ARC
- 手把手教你用动软
- 手把手教你用动软
- 手把手教你系列
- 手把手教你系列
- 手把手教你系列
- 加速你的Maven构建
- 如何构建高性能分词系统?(手把手教你做分词系统)
- Java流 学习笔记
- kdiff3工具
- 编译和运行
- 说说 Wine + QQ 轻聊版 7.7 的安装步骤
- 深入理解Linux修改hostname
- 【手把手教你Maven】构建过程
- Nginx编译参数大全 configure参数中文详解
- Tizen web app开发示例(将2048移植到Tizen平台上)
- vs2015编译tcmalloc(gperftools2.4)
- Python技巧——list comprehension 与 functools.reduce
- 异常解决:Hadoop启动出现ssh无法解析主机名等错误提示
- 比较完整的Nginx配置文件nginx.conf常用参数中文详解
- Android 开发知识收藏夹
- 计算机网络---基础题目汇总七