maven基本基础知识及命令学习-1
Maven概述:Maven是很有效的项目管理工具,maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目构建、报告和文档的软件项目管理工具。统一管理环境,架包等。
一 maven下载及环境配置
maven 依赖java的运行环境 在使用maven之前请下载安装JDK并配置其环境。
maven下载 : http://maven.apache.org/download.cgi
下载后解压到盘(D)的 根目录
配置 :
1.在 环境变量 新建MAVEN_HOME
变量名:MAVEN_HOME
变量值:D:\apache-maven-3.5.0

2.在PATH中加入maven的 bin 目录
%MAVEN_HOME%\bin

3.检查是否配置成功
cmd 输入 mvn -v

二 Maven核心知识:
1.Maven 项目目录结构:
src
-main
-java
-package
-test
-java
-package
resources
pox.xml
2.常用的项目构建路径
mvn -v 查看maven版本
compile 编译
test 测试
package 打包项目
clean 删除target文件和字节码文件
install 把本项目的jar包安装到本地仓库中\
3.自动创建目录骨架
两种方式:
1>使用 mvn archetype:generate 按照提示进行选择创建
2>使用 mvn archetype:generate -DgroupId=组织名,一般是公司网站的反写+项目名
-DartifactId=项目名-模块名
-Dversion=项目的版本号
-Dpackage=代码所存在的包名
4.maven中的坐标和仓库
坐标:构建,也是我们在pom.xml 文件中配置的信息(坐标)
仓库:
本地仓库:也就是本地conf/settings.xml指定配置的仓库所在位置
远程仓库:maven的全球仓库maven-model-builder-3.3.9.jar 里 pom.xml:https://repo.maven.apache.org/maven2
镜像仓库:所谓镜像就是a和b提供了一样的功能
设置镜像仓库在conf/settings.xml 里
<mirrors>
<mirror>
<id>maven.net.cn</id>
<mirrorOf>central</mirrorOf> 也可以是 * 匹配所有的仓库
<name>central mirror in china</name>
<url>http://maven.net.cn/centent/groups/public</url>
</mirror>
<mirrors>
如果使用镜像仓库本地的仓库将不能使用
更改本地仓库的位置:settings.xml <localRepository>E:\mavendevelopment\m2\repository</localRepository>
5.maven的生命周期和插件
一个完整的项目构建过程包括:
清理, 编译, 测试, 打包, 集成测试, 验证, 部署
maven定义了三套相互独立的生命周期:
clean: 清理项目,default: 构建项目,site: 生成项目站点
clean:清理项目
pre-clean:执行清理前的工作
clean:清理上一次构建生成的所有文件
post-clean:执行清理后的工作
default:构建项目主要有:
compile
test
package
install
site:生成项目站点
pre-site: 生成站点前要完成的工作
site: 生成项目的站点文档
post-site: 生成项目站点后要完成的工作
site-deploy:发布生成的站点到服务器上
插件的使用:
如:source插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
6.pom.xml 解析 元素介绍:
搜索maven pom.xml 元素解析
<!-- 指定当前pom的版本 -->
<modelVersion>4.0.0</modelVersion>
<groupId>反写的公司网站+项目名</groupId>
<artifactId>项目名+木块名</artifactId>
snapshot //快照
alpha //内部版本
beta //公测版本
Release //稳定版本
<version>0.0.1SNAPSHOT</version>
打包是第后缀名,默认为jar, war zip pom
<packaging></packaging>
<name>项目描述名</name>
<url>项目地址</url>
<description>项目描述</description>
<developers></developers>
<licenses></licenses>
<organization></organization>
依赖: 依赖传递、 依赖范围、 依赖冲突
依赖冲突: 1短路优先 A->B->C->X(jar)
A->D->X(jar)优先
2 先声明先优先
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<type></type>
<scope>test</scope>依赖范围 编译 测试 运行
<optional></optional> 设置依赖是否可选
<exclusions>排除依赖传递列表
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<parent></parent>继承
<modules><module></module></modules>批量干什么 聚合
tomcat7 配置:
<build>
<finalName>MyMavenPro</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8081</port>
<path>/MyMavenPro</path>
<uriEncoding>utf-8</uriEncoding>
<finalName>MyMavenPro</finalName>
<server>tomcat7</server>
</configuration>
</plugin>
</plugins>
</build>
运行时用命令:tomcat7:run
maven基本基础知识及命令学习-1的更多相关文章
- 《Linux基础知识及命令》系列分享专栏
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...
- Linux基础知识与命令1(su passwd)
一.Linux的基本原则 1.linux由一个个目的单一的小程序组成,我们一般需要组合小程序来完成复杂的任务 2.Linux的一切都是文件(文件类似于一棵树,包括外设,接口) 3.Linux尽量避免捕 ...
- Java基础知识二次学习--第三章 面向对象
第三章 面向对象 时间:2017年4月24日17:51:37~2017年4月25日13:52:34 章节:03章_01节 03章_02节 视频长度:30:11 + 21:44 内容:面向对象设计思 ...
- Java基础知识二次学习-- 第一章 java基础
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...
- Windows权限提升基础知识和命令
介绍 这篇文章是介绍window的权限提升,虽然不是一个全面的指南,但会试图覆盖主要的技术,常用的资源列表在文章底部,可供大家参考. window权限提升基础知识 初始信息收集 在开始提权之前,我们需 ...
- linux 基础知识及命令总结
1.mkdir 创建目录 -p 创建多级目录 mkdir -p /data/test -m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask -p, ...
- linux学习笔记:1.基础知识和命令行基本操作
初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...
- Go语言核心36讲(Go语言基础知识一)--学习笔记
01 | 工作区和GOPATH 从 Go 1.5 版本的自举(即用 Go 语言编写程序来实现 Go 语言自身),到 Go 1.7 版本的极速 GC(也称垃圾回收器),再到 2018 年 2 月发布的 ...
- 后端程序员必备的 Linux 基础知识+常见命令(近万字总结)
大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令. 如果文章有任何需要 ...
随机推荐
- PHP多进程编程pcntl_fork解
其实PHP是支持并发的,只是平时很少使用而已.平时使用最多的应该是使用PHP-FMP调度php进程了吧. 但是,PHP的使用并不局限于做Web,我们完全也可以使用PHP来进行系统工具类的编程,做监控或 ...
- MonoDeveloper 快捷键
注:环境是Unity3D 5.0.2f1自带的MonoDevelop Ctrl+X 剪切功能.另外,光标放在一行的任意位置(不选中任何内容),使用快捷键,将把这一行剪切并删除此行,这个特性非常好用 C ...
- 用JS制作一个信息管理平台完整版
前 言 JRedu 在之前的文章中,介绍了如何用JS制作一个实用的信息管理平台. 但是那样的平台功能过于简陋了,我们今天来继续完善一下. 首先我们回顾一下之前的内容. 1.JSON的基础知识 ...
- JavaScript面向对象(三)——继承与闭包、JS实现继承的三种方式
前 言 JRedu 在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 . 成员属性.静态属性.原型属性与JS原型链).今天 ...
- Webx项目的获取与验证
在JavaWeb环境配置后就可进行Webx实例项目的获取与研读了. 1.创建一个初始的Demo工程. 1)下载 Webx Maven 项目的目录结构Artifact插件. archetype-webx ...
- 【模板】AC自动机(加强版)
题目描述 有个由小写字母组成的模式串以及一个文本串.每个模式串可能会在文本串中出现多次.你需要找出哪些模式串在文本串中出现的次数最多. 输入输出格式 输入格式: 输入含多组数据. 每组数据的第一行为一 ...
- 石子合并(NOI1995)
石子合并(NOI1995) 时间限制: 1 Sec 内存限制: 128 MB提交: 90 解决: 48[提交][状态][讨论版] 题目描述 在操场上沿一直线排列着 n堆石子.现要将石子有次序地合并 ...
- Python cPickle模块
新博客地址:http://gorthon.sinaapp.com/ 持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象.通过本文,您会对 Python对象的各种持久性机制(从关系数据库到 Py ...
- ArcGIS RunTime SDK for Android之Features and graphics
今天是我开通博客园的第一天,希望以后可以多在博客园上分享自己的学习心得,记录自己的学习历程.最近在学习ArcGIS RunTime SDK for Android,所以第一篇随笔就从这里来吧.官网的教 ...
- apache 安装/mod_dir.so: undefined symbol: apr_array_clear
apache 安装好后 启动出错: httpd: Syntax error on line 143 of /usr/local/apache2/conf/httpd.conf: Cannot load ...