Maven的简单配置说明
什么是Maven
Apache Maven,是一个软件,一个项目管理工具,它包含了一个项目对象模型 (Project Object Model POM),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
- POM:POM(project object model)是Maven对一个单一项目的描述。POM是Maven的核心,它是一个XML文件,包含了Maven用来创建项目所需要的项目配置的信息。
Maven 能够帮助我们干什么?
简言之,Maven 可以帮助我们完成以下工作:
- 项目构建
- 文档管理
- 生成测试报告
- 解决项目间依赖项
- 源代码版本管理
- 项目Releases
- 项目的分发
功能摘要(摘自官网)
- 遵循最佳实践的简单项目设置 - 在几秒钟内启动新项目或模块
- 所有项目的一致使用 - 意味着新开发人员进入项目的时间不会增加
- 卓越的依赖管理,包括自动更新,依赖关闭(也称为传递依赖)
- 能够轻松地同时处理多个项目
- 一个庞大且不断增长的库和元数据库,可以立即使用,并与最大的开源项目一起安排,以实现最新版本的实时可用性
- 可扩展,能够轻松编写 Java或脚本语言的插件
只需很少或不需要额外配置即可即时访问新功能
用于在Maven之外进行依赖关系管理和部署的Ant任务 - 基于模型的构建:Maven能够根据项目的元数据将任意数量的项目构建到预定义的输出类型(如JAR,WAR或分发)中,而无需在大多数情况下执行任何脚本。
- 项目信息的连贯站点:使用与构建过程相同的元数据,Maven能够生成包含您需要添加的任何文档的网站或PDF,并添加有关项目开发状态的标准报告。在“项目信息”和“项目报告”子菜单下,可以在本网站左侧导航栏的底部看到此信息的示例。
- 发布管理和发布发布:没有太多额外配置,Maven将与您的源代码控制系统(如Subversion或Git)集成,并根据特定标记管理项目的发布。它还可以将其发布到分发位置以供其他项目使用。Maven能够发布单个输出,例如JAR,包含其他依赖关系和文档的存档,或者作为源代码分发。
- 依赖管理:Maven鼓励使用JAR和其他依赖项的中央存储库。Maven附带了一种机制,您的项目客户可以使用该机制从中央JAR存储库下载构建项目所需的任何JAR,就像Perl的CPAN一样。这允许Maven的用户跨项目重用JAR并鼓励项目之间的通信,以确保处理向后兼容性问题。
Maven安装和配置
配置Maven环境
注意,安装Maven前要首先配置jdk环境变量,否则运行mvn -v查看Maven版本时会出现以下提示
- 下载apache-maven文件(最新版本:3.6.3):
下载地址:http://maven.apache.org/download.cgi
- 解压文件至文件夹
注意:文件路径不要含有中文字符及空格 - 配置环境变量
Windows环境
新建:MAVEN_HOME(M2_HOME) :
D:\server\maven\apache-maven-3.5.0 (自己的文件解压路径)修改path:在path最后面添加:
;%MAVEN_HOME%\bin打开命令提示符,输入: mvn -v,显示以下信息表示配置成功
基于Unix的操作系统(Linux和Mac OS),以Mac OS为例。
打开终端,输入:
vim ~/.bash_profile
,按Enter添加以下代码并退出vi:
export M2_HOME=/usr/local/apache-maven-3.5.4
(解压后的文件夹路径)
export PATH=$PATH:$M2_HOME/bin
(退出vi:1.按Shift + ;2.输入:wq 3.按Enter)输入命令:
source ~/.bash_profile
,按Enter输入命令:
mvn -v
显示以下信息表示配置成功
配置Maven本地仓库、镜像仓库
根据个人情况,新建仓库文件夹;
配置Maven\conf\文件夹中setting.xml文件
- 配置本地仓库地址(根据自己的情况选择路径)
<localRepository>D:\Apps\Maven\repository</localRepository>
- 配置镜像
在<settings><mirror></mirrors></settings>
之间插入以下代码(阿里云镜像)
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
了解更详细的setting.xml的配置,可以访问以下网址:http://www.cnblogs.com/yangxia-test/p/4409736.html
IDEA中配置及使用Maven
IDEA配置Maven
IDEA自带了apache maven,默认使用的是内置maven,所以我们可以配置全局setting,来调整一下配置。
在IDEA中使用Maven创建项目
- 依照以下步骤创建项目
第一次创建项目需要等待一段时间,Maven需要下载jar包
目录:
还需要自己创建一些文件夹,创建完成后结构如下
java:存放源代码
com.chixing:存放个模块
resources:存放资源文件
test/java:存放测试代码
test/resources:存放测试所需资源文件
通用目录结构
|-- pom.xml
|-- src
| |-- main
| | `-- java
| | `-- resources
| | `-- filters
| `-- test
| | `-- java
| | `-- resources
| | `-- filters
| `-- it
| `-- assembly
| `-- site
`-- LICENSE.txt
`-- NOTICE.txt
`-- README.txt
src/main/java 项目的源代码所在的目录
src/main/resources 项目的资源文件所在的目录
src/main/filters 项目的资源过滤文件所在的目录
src/main/webapp 如果是web项目,则该目录是web应用源代码所在的目录,比如html文件和web.xml等都在该目录下。
src/test/java 测试代码所在的目录
src/test/resources 测试相关的资源文件所在的目录
src/test/filters 测试相关的资源过滤文件所在的目录
上面的目录结构,我们接触的比较多,而下面的这些目录结构,用的相对不是很多:
src/it 集成测试代码所在的目录,主要是供别的插件使用的。
src/assembly 组件(Assembly)描述符所在的目录
src/site 站点文件
LICENSE.txt 项目的许可文件
NOTICE.txt 该项目依赖的库的注意事项
README.txt 项目的readme文件
- 在根目录下,主要有两个目录,分别是
src
和target
目录,除此之外,还会有一些版本控制系统的元数据文件,包括git的.gitignore
或者svn的.svn
。
修改设置:
Maven常见命令
命令 | 含义 |
---|---|
mvn archetype:create | 创建Maven项目 |
mvn compile | 编译源代码 |
mvn test | 运行应用程序中的单元测试 |
mvn install | 在本地Respository中安装jar |
mvn clean | 清除项目目录中的生成结果 |
mvn site | 生成项目相关信息的网站 |
mvn package | 根据项目生成jar |
Maven生命周期
Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”的。这三套生命周期分别是:
- Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
- Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
- Site Lifecycle 生成项目报告,站点,发布站点。
Maven的简单配置说明相关推荐
- Maven实战. 3.7NetBeans Maven插件简单使用
3.7NetBeans Maven插件简单使用 NetBeans的Maven插件也十分简单易用,我们可以轻松地在NetBeans中导入现有的Maven项目,或者使用Archetype创建Maven项目 ...
- 有人说 Maven 很简单,我却被 伤害 过
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随 ...
- maven setting.xml配置说明
setting.xml view plaincopy to clipboardprint? <?xml version="1.0" encoding="UTF-8& ...
- db2v9/9.5高级应用开发_Spark v2.4.3应用程序开发入门-基于IDEA/Maven 构建简单应用
Spark 提供了丰富的API,让开发人员可以使用简洁的方式,来处理复杂的数据计算和分析. 在开始Spark应用开发之前,需要做好如下准备工作. (1)搭建好Hadoop环境(如果需要访问HDFS): ...
- maven 程序包不存在_有人说 Maven 很简单,我却被“伤害”过
在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那么一个 ...
- maven 一个简单项目 —— maven权威指南学习笔记(三)
目标: 对构建生命周期 (build lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...
- 在eclipse上使用Maven创建简单项目
1.鼠标右键New -> Project -> Maven -> Maven Project 2.勾选 "Create a simple project( skip arc ...
- maven项目编译不了java文件_无法使用Maven编译简单的Java 10 / Java 11项目
我有一个简单的Maven项目: src └── main └── java └── module-info.java pom.xml pom.xml中: org.example example 1.0 ...
- Java的Web项目使用DWR简单配置说明
为什么80%的码农都做不了架构师?>>> 首先使用Maven引入DWR的Jar包 <dependency><groupId>org.directwebr ...
最新文章
- LeetCode 450 Delete Node in a BST(二叉搜索树中的删除结点)
- Linux系统CentOS下mysql的安装日志
- (转载)Hadoop2.7.1配置
- 汇编语言典型例子详解_从架构到 RTOS 详解 DSP 和 MCU 的区别和联系
- iOS开发 plist字段列表,很全
- Oracle弱智100问
- 数学基础加强2---概率论与贝叶斯先验
- Git 可视化管理工具 - Sourcetree 使用指南
- 不知道前端课程学什么?这份完整的web前端课程大纲分享给你
- pythontiff怎么设置_在python中使用tiff文件
- LaTeX插入参考文献教程 | 非BibTeX格式
- php提取网页mp3,介绍三种提取网页中音乐URL网址的方法
- 算法成华纳旗下歌手?背景音乐经济
- Redis大数据应用场景
- DC-DC同步升压芯片PW5100替代PC1961,原厂供应
- 1-2 李宏毅2021春季机器学习教程-第一节(下)-深度学习基本概念简介
- 命令控制qq自动申请远程控制
- 公众号互推还是要的,要不怎么让更多人看到可爱的我呢?
- html - 移动标签 marquee 属性
- java.lang.IllegalStateException: No instances www.xxxx.com available for localhost