Maven学习笔记一
maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的。
Maven好处
1、普通的传统项目,包含jar包,占用空间很大。而Maven项目不包含jar包,所以占用空间很小。 但还是需要jar的,只是没有存在于maven项目里面,而是存在本地仓库中。
2、依赖管理,只需要在pom.xml配置需要的插件,就能在在项目中使用。主要是能够对jar包的统一管理,可以节省空间。
3、项目一键构建,maven可以进行编译、测试(junit)、运行、打包、部署。一个 tomcat:run命令就能把项目运行起来。
4、可以跨平台
5、应用于大型项目,可以提高开发效率。
Maven的安装配置
1、下载安装
下载地址:http://maven.apache.org/download.cgi,下载后直接解压到一个没有中文没有空格的文件夹里,解压后的目录如下:
Maven软件的核心文件:
2、Maven环境变量配置
前提是要配置jdk, maven3.3.9这个版本所需的jdk版本必须要1.7以上。最终要运行的是maven软件中bin目录的mvn命令。
2.1 添加系统变量
- 变量名:最好叫M2_HOME
- 变量值:就是maven软件解压的目录,比如:F:\class32\apache-maven-3.3.9
2.2 把M2_HOME添加到系统变量的path末尾,注意加分号。
2.3 验证maven是否配置成功
打开dos窗口,输入: mvn –v
Maven仓库
Maven有三种仓库
1、本地仓库,自己维护
如果想要修改maven的本地仓库位置,可以在maven的安装目录下的conf目录下的settings.xml配置文件中设置。
2、远程仓库(私服),公司维护
3、中央仓库, maven团队维护
总计jar包已达两个亿,所以无需担心没有我们需要的jar包,三种仓库的关系如下:
本地项目会先到本地仓库查找,如果有,直接使用,如果没有,会到远程仓库找,找到会下载到本地,没找到,会到中央仓库找,找到后本地仓库和远程仓库都会缓存一份。以便以后使用。当然如果没有远程仓库,则直接到中央仓库查找。
Maven入门程序
Maven项目的目录结构
src下的目录结构:
Maven的常用命令
Clean 清理编译的文件
Compile 编译了主目录的文件
Test 编译并运行了test目录的代码
Package 打包
Install 就是把项目发布到本地仓库
Tomcat:run 一键启动,运行tomcat7的时候使用需mvn tomcat7:run
Maven的生命周期
其中常用的有:Compile test package install deploy(发布到私服)
分为三种生命周期:
- Clean生命周期: clean
- Default生命周期:compile test package install deploy,执行后面的命令,前面的命令都会执行。比如执行install,则compile test package也会执行。
- Site生命周期:site
命令和生命周期的阶段的关系
不同的生命周期的命令可以同时执行。比如:mvn clean package
在eclipse中构建项目
1、m2e插件的安装,即maven在eclipse的配置。选择3.3.9版本的maven软件
2、修改默认的本地仓库地址
3、新建maven项目
4、调过骨架,如果不跳过骨架选择创建出的项目目录是不全的
5、填写坐标
6、创建工程
7、处理红色叉号。手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件
8、处理编译版本,在pom.xml中添加如下代码,默认是jdk1.5。
<build>
<!-- 配置了很多插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
9、创建一个servlet
10、修改web.xml,删除重复的代码:xmlns=http://java.sun.com/xml/ns/javaee
11、添加jar包,在pom中添加如下代码:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency> </dependencies>
会发现jar包已添加到项目中
12、启动项目,右击项目---run as –maven build ….
在IDEA中使用Maven构建项目
1、配置Maven
2、弹出如下界面,找到maven:
关于速度慢,卡死问题可以参考:解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
3、设置好后,开始使用Maven 骨架创建 Java Web 项目
如果已按照上面的配置配置好,下面这一步默认就行。
下一步也是默认就行。
不出意外,就能看到创建好的项目
由上图可以看出,main下面并没有java文件夹,我们需要手动添加。添加好后,鼠标右键新建时,并不能添加class文件。
我们需要把java文件夹设置为Source,方法是点击右上角的project structure按钮。即可进入以下页面。
新建一个servlet,并添加依赖。
稍等片刻,jar包就会引入到我们的项目中,输出一个字符串试试:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("maven studing");
}
配置Servlet,由于maven生成的web.xml的Servlet版本太低,我们使用正常的web.xml覆盖掉自动生成的。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"> <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list> <servlet>
<servlet-name>Servlet03</servlet-name>
<servlet-class>com.yyb.test.Servlet3</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet03</servlet-name>
<url-pattern>/Servlet03</url-pattern>
</servlet-mapping>
</web-app>
pom.xml配置如下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yyb</groupId>
<artifactId>Maven03</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven03 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!--一定要配置为provided,表示只在编译时使用此jar包,运行时tomcat自带有,不然会和tomcat起冲突-->
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>Maven03</finalName>
<!--配置jdk版本为1.7-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--配置tomcat7-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
准备就绪,下面测试项目,如下所示:
在地址栏输入:http://localhost:8080/Maven03/Servlet03,如下所示:
到此为止,我们的项目构建就完成了。
Maven学习笔记一的更多相关文章
- Maven学习笔记-03-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- Maven学习笔记-04-Eclipse下maven项目在Tomcat7和Jetty6中部署调试
现在最新的Eclipse Luna Release 已经内置了Maven插件,这让我们的工作简洁了不少,只要把项目直接导入就可以,不用考虑插件什么的问题,但是导入之后的项目既可以部署在Tomcat也可 ...
- Maven学习笔记—仓库
Maven仓库 1 什么是Maven仓库 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以成为构件,而Maven通常在某个位置统一的存储所有Maven项目共享的构件,这个统一的位置就是Ma ...
- MAVEN学习笔记之Maven插件的应用(4)
MAVEN学习笔记之Maven插件的应用(4) <build> <pluginManagement> <plugins> <plugin> <gr ...
- MAVEN学习笔记之Maven生命周期和插件简介(3)
MAVEN学习笔记之Maven生命周期和插件简介(3) clean compile site三套生命周期相互独立. clean pre-clean 执行清理前的工作 clean 清理上一次构建生成的所 ...
- MAVEN学习笔记之私服Nexus(2)
MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Admin ...
- MAVEN学习笔记之基础(1)
MAVEN学习笔记之基础(1) 0.0 maven文件结构 pom.xml src main java package resource test java package resource targ ...
- Maven 学习笔记(二)
前面一文——Maven 学习笔记(一)中已经提到了 pom 的大部分配置,Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给创建来完成,每一个任务都会对应一个插件 ...
- TODO maven学习笔记
maven是什么? 我的体会 我理解得maven就是一个构建工具,可以做一些项目得整合操作,我们把一些常见得操作,封装在maven里面,并给它命名成 clean,test,compile,这些步骤都是 ...
- Maven学习笔记(1)之安装Maven
此笔记是学习Maven时自己摸索+各种百度而来,并非全部原创,望与各位一同学习,勿拍~勿拍~ 安装步骤 1.下载Maven的最新版本,地址:http://maven.apache.org/downlo ...
随机推荐
- Android 开发环境搭建与Hello World
Hello World 到这里, 环境搭建就没问题了. 接下来, 创建一个Android 的Hello World. 1. 添加一个安卓虚拟设备 直接点击虚拟设备管理图标或是 Window--&g ...
- [QNAP crontab 定時執行程式
注意要自動執行的 sh 檔不要放在 /root 裡, 不然韌體更新後檔案會不見, 要放在個人帳號的資料夾,例如 /share/homes/帳號/ QNAP 的 crontab 放在 /etc/conf ...
- Java 8 Date-Time API 详解
从Java版本1.0开始就支持日期和时间,主要通过java.util.Date类. 但是,Date类设计不佳. 例如,Date中的月份从1开始,但从日期却从0开始.在JDK 1.1中使用它的许多方法已 ...
- js 几种排序方法
1.冒泡排序 var arr = [9, 7, 5, 3, 1]; for (var i = 0; i < arr.length - 1; i++) { for (var j = 0; j &l ...
- Python Cookbook(第3版)中文版:15.14 传递Unicode字符串给C函数库
15.14 传递Unicode字符串给C函数库¶ 问题¶ 你要写一个扩展模块,需要将一个Python字符串传递给C的某个库函数,但是这个函数不知道该怎么处理Unicode. 解决方案¶ 这里我们需要考 ...
- 主席树总结(经典区间第k小问题)(主席树,线段树)
接着上一篇总结--可持久化线段树来整理吧.点击进入 这两种数据结构确实有异曲同工之妙.结构是很相似的,但维护的主要内容并不相同,主席树的离散化.前缀和等思想也要更难理解一些. 闲话 话说刚学习主席树的 ...
- 【NOIP2015】子串(动态规划)
题目戳我 题解 很简单的一道题... 看来那时候还是我太菜了... 设f[i][j][k][0/1]表示在第一个串中的位置i,匹配到了位置j,一共分了k段,0/1表示上一个位置是否在某一段中 转移就很 ...
- java.lang.OutOfMemoryError: PermGen space有效解决方法
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决 ...
- mysql压缩包安装方式
从官网https://dev.mysql.com/downloads/mysql/上下载mysql-5.6.31-winx64.zip,将其解压,接下来的安装是通过命令来安装MySQL数据库的.(P. ...
- 解决Win10下_findnext()异常
在win10中,使用文件遍历函数_findnext会报0xC0000005错误 ,发生访问冲突错误 错误定位到ntdll.dll 原因: _findnext()第一个参数"路径句柄" ...