Java 项目管理工具 - Maven
类似于 PHP 中的 Composer,NodeJS 中的 npm,Java 用 Maven 来管理依赖关系。
实际上,Maven 负责管理 Java 项目开发过程中的几乎所有的东西:
- 版本控制:Maven 有自己的版本定义和规则
- 依赖管理:Maven 的基础功能
- 构建:支持多种应用程序类型,提前定义了对应的构建规则和工具集
- 输出管理:项目构建的产物可以用 Maven 管理,可以加到指定的用户库中
- 文档:通过 site 命令发布各种文档信息,包括构建过程的输出报告,javadoc 文档等
- 项目关系:微服务模式下,一个项目通常由几个模块组成,用 Maven 可以完美应对
Maven 生命周期
POM 项目对象模型
pom.xml 元素
每个 Maven 项目的根目录下都有一个 pom.xml 文件,包含各种配置信息。Maven 用这个文件来构建项目。其中的可配置项有:
project dependencies
plugins
goals
build profiles
project version
developers
mailing list
其中,工程组(groupId)、名称(artifactId)和版本(version)属性是工程的唯一标识。
根项目配置示例:
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.kikakika.myproject-group</groupId>
<artifactId>myproject</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>myproject_common</module>
<module>myproject_base</module>
</modules>
</project>
子模块的配置:
<?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/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>myproject</artifactId>
<groupId>com.kikakika.myproject-group</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>myproject_common</artifactId>
</project>
继承关系
每个项目根目录下的 pom.xml 文件可以被子项目或子模块的所继承,从而实现尽可能少的配置。
Maven 的构建生命周期
参考:http://wiki.jikexueyuan.com/project/maven/build-life-cycle.html
使用 Maven 构建项目时,可以指定多个基本的阶段,每个阶段中可以使用 pre 和 post 在特定阶段之前或之后执行目标:
资源拷贝-》编译-》单元测试-》打包创建 JAR 包或 WAR 包-》集成测试-》安装部署到本地或远程仓库
Maven 构建工程时,每个阶段都有以下三个标准的生命周期:
- clean:清理之前的构建信息
- default(or build):构建项目
- site:创建新的报告文档、部署站点
Maven 仓库
参考:http://www.runoob.com/maven/maven-repositories.html
通过 Maven 获取依赖时的顺序关系:
- 现在本地仓库查找依赖,如果依赖存在则停止查找
- 如果本地仓库不存在指定的依赖,则去官方提供的中央仓库查找,如果找到了则停止,如果没找到且没有配置远程仓库,则报错停止,否则去远程仓库查找
- 如果在远程仓库找到依赖,则停止,否则报错
Java 项目管理工具 - Maven的更多相关文章
- ③---Java项目管理工具MAVEN安装与配置
Java项目管理工具MAVEN安装配置以下将为大家介绍Java项目管理工具MAVEN安装及其配置. 一.下载MAVEN安装文件 maven下载地址:https://maven.apache.org/d ...
- java项目管理工具maven使用初级
一.前言 早就知道maven 在java 项目的管理方面名声显赫,于是就想着学习掌握之,于是查阅了大量文档.发现这些文档的作者都是java 的大腕,大多都是站在掌握了一定maven 基础 ...
- Maven java项目管理工具
Maven java项目管理工具 1.安装maven 下载最新的maven 下载地址 http://maven.apache.org/download.cgi 传到要安装的目录 例如/opt/下 # ...
- 向西项目管理工具Maven一片
前言 相信仅仅要做过 Java 开发的童鞋们,对 Ant 想必都不陌生,我们往往使用 Ant 来构建项目,尤其是涉及到特别繁杂的工作量.一个 build.xml 可以完毕编译.測试.打包.部署等非常多 ...
- 《从零开始搭建游戏服务器》项目管理工具Maven
简介 什么是Maven?Maven是一个项目管理和综合工具,提供了开发人员构建一个完整的生命周期框架. Maven使用标准的目录结构和默认构建生命周期,在多个开发团队环境时,Maven可以设置按标准在 ...
- 关于项目管理工具 maven
众所周知,maven是目前很常用的项目管理工具.一般情况下,通过在pom.xml添加相应内容,再maven-->update就会自动把相应的jar包下载.配置好,非常方便. 一般每新建一个wor ...
- idea集成项目管理工具 --- Maven 并且【配置tomcat】
介绍: 1.项目管理工具 POM Porject Object Model 2.可以管理项目中的的jar包依赖 3.maven jar包中央仓库:http://mvnrepository.c ...
- 项目管理工具Maven的安装与使用
一.Maven的简介 1. 什么是maven 是Apache下的一个开源的项目,是纯java编写,并且只是用来管理java项目. 2. Maven的好处 maven项目管理jar节省磁盘空间 一键构建 ...
- 项目管理工具maven(一)
1 Maven的概述 1.1 依赖管理 就是对jar包的统一管理 可以节省空间 1.2 项目一键构建 编码 编译 测试(junit) 运行 打包 部署 一个 tomcat:run就能把项目 ...
随机推荐
- SpringBootMVC02——Spring Data JPA的使用&JSP的使用
Spring Data JPA的使用 实体层 package com.littlepage.domain; import javax.persistence.Entity; import javax. ...
- jquery在线引用地址大全 全部来自官网
谷歌的就算了,容易被屏蔽,下面都是官方原版的 最新版本 <script src="http://code.jquery.com/jquery-latest.js">&l ...
- 连接gitlab
https://www.cnblogs.com/mengyu/p/7761340.html 一.PyCharm配置Git的环境 1.PyCharm 连接Git首先需要本机安装Git软件; 2.PyCh ...
- 一张图明白jenkins和docker作用
可以看出,jenkins充当的是一个自动构建的作用,构建完后自动部署到机器上.如果没有docker,那么就是直接把打包好的jar包直接部署到服务器.现在是把jar包部署到服务器上的docker容器上. ...
- Nginx 502 Bad Gateway 的错误的解决方案
我用的是nginx反向代理Apache,直接用Apache不会有任何问题,加上nginx就会有部分ajax请求502的错误,下面是我收集到的解决方案. 一.fastcgi缓冲区设置过小 出现错误,首先 ...
- .net reactor 加密混淆使用办法
https://www.cnblogs.com/bile/p/10250888.html 概述:安装了.net reactor之后,可以在安装目录下找到帮助文档REACTOR_HELP.chm,目前没 ...
- linux-shell脚本基础-2
1,用户组 添加用户 useradd -u UID -o -g 指定 GID或组名 -c 注释信息 -d 家目录 -s shell -G 附加组 -r 系统用户 -m 家目录,系统用户 -M 不创建家 ...
- 文件操作:rewind()
函数名: rewind() 功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头 注意:不是文件指针而是文件内部的位置指针,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动 ...
- HDU2196computer
就是求每个点为起始点的最长链的长度. 写一下各个数组的意思吧. f[i][0]为点i向下走最长的距离:f[i][1]为点i向下走第二长的距离: xia[i][0]为点i向下走最长距离所要走的儿子节点: ...
- Centos7安装Redis3.X
本文只是简单搭建Redis,为了整合ELK用,后面会详细写. Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高 ...