Maven
简介
Maven 是基于项目对象模型(POM - Project Object Model),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
项目管理和构建工具包括有:Maven、Ant、gradle等
安装
windows:我的电脑 -> 设置 -> 高级系统设置
一个电脑多个用户时设置用户变量;个人电脑设置系统变量
M2_HOME meven的安装目录
Path ;M2_HOME/bin
mvn -v 验证是否安装成功
目录结构
src
-main
-java
-package 项目的包路径
-test
-java
-package 项目的报路径
resources 资源文件
操作命令
mvn compile 编译
mvn test 测试。生成 target文件夹,包含字节码文件、测试报告
mvn package 打包。生成 .jar 文件
mvn clean 删除 target 文件夹
mvn install 安装 jar 包到本地仓库中,作为依赖提供给其它项目使用
POM.xml 文件
作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。详情:http://blog.csdn.net/adeyi/article/details/17259479
<?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"
psi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> maven 版本,4.0.0 为固定值
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
psi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> maven 版本,4.0.0 为固定值
<groupId>com.xxx.yyy</groupId> 项目的包名
<artifactId>yyy</artifactId> 模块名
<version>0.0.1SNAPSHOT</version> 版本(快照版本)
<dependencies> 依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</project>
archetype 快速生成一个新项目
archetype 是一个插件,自动创建目录骨架。
命令:mvn archetype:generate
下载一系列文件后按要求进行相应的配置:
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 988:
可以直接回车跳过
1: 1.0-alpha-1 2: 1.0-alpha-2 3: 1.0-alpha-3 4: 1.0-alpha-4 5: 1.0 6: 1.1 Choose a number: 6:
选择 maven-archetype 版本
Define value for property 'groupId': : com.xxx.yyy Define value for property 'artifactId': : mmm Define value for property 'version': 1.0-SNAPSHOT: : 0.0.1-SNAPSHOT Define value for property 'package': com.xxx.yyy: :
第一行设置项目包名;第二行设置模块名;第三行设置项目版本;第四行设置打包的格式。
Eclipse 创建 Maven Project 问题
artifactId 已存在,重新填写新的 artifactId。