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就能把项目 ...
随机推荐
- SpringBootMVC01——A simple SpringBootMVC Sample
不带数据库的SpringBootMVC案例 1.创建一个SpringBoot项目,添加thymeleaf,webstarter 2.目录层级 3.启动器代码 package com.littlepag ...
- 二、Ubuntu16.04安装搜狗wps
1.搜狗: 安装搜狗输入法,下载地址:http://pinyin.sogou.com/linux/(搜索官网下载及安装方法),deb安装方法类似Windows的exe安装,安装后重启生效. 2.wps ...
- app 进入后台进行模糊处理
金融类app防止信息在后台中被一些恶意截屏软件进行截屏,对进入后台的app做模糊处理 - (void)applicationWillResignActive:(UIApplication *)appl ...
- controller 有两种写法,讨论一下两种写法的区别:
controller 有两种写法,讨论一下两种写法的区别: 写法 1: app.controller('myCtrl', function($scope, $location) { $scope.my ...
- Vue项目使用域名访问配置
1. 编辑C:\Windows\System32\drivers\etc文件夹中的hosts文件,在末尾添加127.0.0.1 www.local.com(你的自定义域名) 注意:如果该文件夹没有ho ...
- bio,nio,aio的区别 select,poll,epoll的区别
先了解一些基本概念,什么是socket?什么是I/O操作 unix(like)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO.管道.终端,对我们来说,一切 ...
- 在CentOS 6.4上安装Puppet配置管理工具
在CentOS 6.4上安装Puppet配置管理工具 linux, puppetAdd comments 五052013 上篇说了下在ubuntu12.04上安装puppet,安装的版本为puppet ...
- jq实现表格多行列复制
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>&l ...
- node中controller的get和post方法获取参数
1.get: const body = ctx.query; // get请求 2.post: const body = ctx.request.body; // post请求
- 随机数:rand()
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明. rand(产生随机数) 表头文件: #include<stdlib ...