Maven01——简介、安装配置、入门程序、项目构建和依赖管理
1 Maven的简介
1.1 什么是maven
是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的
Svn eclipse maven量级
1.2 Maven好处
同一个项目,普通的传统项目(24M)而Maven项目只需要(724KB)
分析:maven项目为什么这么小?没有jar。 需要jar吗?肯定需要。没有存在于maven项目里面,jar存在于哪?
1.3 依赖管理

1.4 项目一键构建
编码 编译 测试(junit) 运行 打包 部署
一个 tomcat:run就能把项目运行起来
Maven能干的事:
编译 测试(junit) 运行 打包 部署
1.5 小结:
Maven的好处:
1.5.1 依赖管理
就是对jar包的统一管理 可以节省空间
1.5.2 一键构建
1.5.3 可以跨平台
1.5.4 应用于大型项目 可以提高开发效率
分析:
用户管理 订单管理 支付管理 。。。。。
Maven的分模块开发
互联网项目 按业务分
传统项目 按层分 entity dao service web
2 Maven的安装配置
2.1 下载安装

直接解压到一个没有中文没有空格的文件夹里解压后的目录如下:

Maven软件的核心文件:

2.2 Maven环境变量配置
1、 要配置jdk, maven3.3.9这个版本所需的jdk版本必须要1.7以上
2、 最终要运行的是maven软件中bin目录的mvn命令
所以要配置maven的环境变量
在系统变量添加
环境变量的名称:MAVEN_HOME
变量值:就是maven软甲解压的目录F:\class32\apache-maven-3.3.9

3、把MAVEN_HOME添加到path里

4、验证maven是否配置成功:
打开dos窗口 输入: mvn –v

2.3 Maven仓库
三种仓库
1、本地仓库 自己维护
本地仓库的配置只需要修改settings.xml文件就可以

2、远程仓库(私服) 公司维护
3、中央仓库 maven团队维护 两个亿
三种仓库的关系如下:

3 演示入门程序
3.1 Maven的目录结构


3.2 Maven的常用命令
Clean 清理编译的文件
Compile 编译了主目录的文件
Test 编译并运行了test目录的代码
Package 打包
Install 就是把项目发布到本地仓库
Tomcat:run 一键启动
3.3 Maven的生命周期(了解)
Compile test package install deploy(发布到私服)
三种生命周期
Clean生命周期
Clean
Default生命周期
Compile test package install deploy
Site生命周期
Site
3.4 命令和生命周期的阶段的关系
不同的生命周期的命令可以同时执行
Mvn clean package
4 项目构建
M2e插件的安装
Maven在eclipse的配置
1、选择3.3.9版本的maven软件

2、修改默认的本地仓库地址

项目构建
1、 新建maven项目

2、调过骨架,如果不跳过骨架选择创建出的项目目录是不全的

2、 填写坐标

3、创建工程

4、处理红色叉号
手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件

5、处理编译版本
在pom.xml中添加如下代码,然后记得右键工程Maven UpdateProject
<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>
5、创建一个servlet

修改web.xml
删除重复的代码
xmlns=http://java.sun.com/xml/ns/javaee

添加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包已添加到项目中

启动项目
右击项目---run as –maven build ….

5 依赖管理
Jar包的管理
需求:整合struts2 页面上传一个客户id 跳转页面
5.1 添加依赖:
打开maven仓库的视图:

5.2 重建索引

1、 创建maven项目(同上)
2、 跳过骨架(同上)
3、 填写坐标信息(同上)
4、 添加web.xml文件(同上)
5、 修改编译版本(同上)
6、 添加坐标 选择Dependencies标签 点击add

7、 手动输入要添加的坐标,选择版本

8、 可以看到 pom.xml文件中多出了如下代码

9、 同样的方式添加servlet-api.jar和jsp-api.jar 注意选择scope为provided
10、 写action代码
import com.opensymphony.xwork2.ActionSupport;
public class CutomerAction extends ActionSupport {
private Long custId;
public Long getCustId() {
return custId;
}
public void setCustId(Long custId) {
this.custId = custId;
}
public String findById(){ return SUCCESS;
} }
11、 添加struts.xml文件放到resources目录中

内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<!-- 配置常量 -->
<!-- 字符集 -->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
<!-- 开发模式 -->
<constant name="struts.devMode" value="true"></constant> <!-- 通用package -->
<package name="customer" namespace="/" extends="struts-default"> <action name="find" class="cn.itcast.action.CutomerAction"
method="findById">
<result name="success">/jsp/info.jsp</result>
</action> </package>
</struts>
12、 添加jsp页面

13、修改web.xml文件 添加过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.3 依赖范围(需不需要提供)
5.3.1 Compile struts2-core
编译(compile)时需要 测试时需要,,运行时需要,打包时需要
5.3.2 Provided jsp-api.jar servlet-api.jar
编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要
因为tomcat服务器里面默认有,所以运行和打包都不需要
5.3.3 Runtime 数据库驱动包
编译时不需要,测试时需要,,运行时需要,打包时需要
5.3.4 Test junit.jar
编译时不需要,测试时需要,运行时不需要,打包也不需要
添加插件
Maven add plugin

如果用tomcat7运行用命令:
Tomcat7:run
常见问题:
Debug进不去,点击添加如果无效

那么就用下面的方法:


下面的情况重装下jdk就行

最后说下概念模型:

插件写在build里面

机子里面都可以不用安装tomcat啦!!!
插件也是依赖也是jar包
Maven01——简介、安装配置、入门程序、项目构建和依赖管理的更多相关文章
- maven——项目构建和依赖管理工具
apache maven是一个用于项目构建和依赖管理的工具. 添加archetype https://repo1.maven.org/maven2/archetype-catalog.xml 更改本地 ...
- 转载maven安装,配置,入门
转载:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 本书代码下载 大家可以从我的网站下载本书的代码:http://ww ...
- 【Parcel 2 + Vue 3】从0到1搭建一款极快,零配置的Vue3项目构建工具
前言 一周时间,没见了,大家有没有想我啊!哈哈!我知道肯定会有的.言归正传,我们切入正题.上一篇文章中我主要介绍了使用Vite2+Vue3+Ts如何更快的入手项目.那么,今天我将会带领大家认识一个新的 ...
- golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的
golang多个项目时如何配置GOPATH,使用gb包依赖管理工具,不同项目配置不同的GOPATH的 1:执行脚本setGoPath.sh#!/bin/bashif [[ $GOPATH =~ .*$ ...
- 适合Linux嵌入式项目的代码构建与依赖管理工具——cazel
前言 我们知道,现在有很多流行的优秀代码构建工具,如CMake.jetkins.bazel等.这些不同的构建工具在其应用的领域起到了举足轻重的作用. 但是,如果仔细研究就会发现,在嵌入式领域,构建工具 ...
- Django-下载安装-配置-创建django项目-三板斧简单使用
目录 Django 简介 使用 django 的注意事项 计算机名不能有中文 Django版本问题 django下载安装 在命令行下载安装 在pycharm图形界面下载安装 检验是否安装成功 创建Dj ...
- 01 Node.js简介, 安装&配置
Node.js 简介 Node.js 是什么 Node.js 有着强大而灵活的包管理器(node package manager,npm) 目前, 已经有强大第三方工具模块, 例如数据库连接, 网站开 ...
- ActiveMQ安装与入门程序 & JMS的消息结构
1.Activemq安装 直接到官网下载:记住apache的官网是域名反过来,比如我们找activemq就是activemq.apache.org. 最新版本要求最低的JDK是8,所以最好在电脑装多个 ...
- Hbase简介安装配置
HBase —— Hadoop Database的简称 ,hbase 是分布式,稀疏的,持久化的,多维有序映射,它基于行键rowkey,列键column key,时间戳timestamp建立索引.它是 ...
随机推荐
- 分享 android 源码
Android精选源码 UI框架 QSkinLoader换肤框架 一款优雅的中国风Android笔记源码 ListView.RecyclerView两种方式实现聊天界面 android仿滴滴时间选择控 ...
- KNN算法--python实现
邻近算法 或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...
- Presto向分区表快速插入数据时出现'target directory already exists'的原因
因为项目使用Presto作为ETL使用,需要将关系库中的数据导入到Hive中.目前关系库中的数据每天导入一次,在Hive中以天为间隔创建新的分区.思路是正确的,但是在使用的过程中,发现将少量关系库中的 ...
- X-NUCA 2017 web专题赛训练题 阳光总在风雨后和default wp
0X0.前言 X-NUCA 2017来了,想起2016 web专题赛,题目都打不开,希望这次主办方能够搞好点吧!还没开赛,依照惯例会有赛前指导,放一些训练题让CTFer们好感受一下题目. 题目有一大 ...
- private static final long serialVersionUID = 1L;详解
public class User implements Serializable { /** * serialVersionUID */ private static final long seri ...
- 【NO.1】Jmeter-安装JDK- 配置Jmeter运行的环境 - 是使用Jmeter的前提
本篇文档是描述:当我们遇到没有安装JDK的Windows系统的电脑.Linux系统的电脑的时候,该怎么来安装JDK. 如果你不安装JDK,那么就没办法开始使用Jmeter. JDK下载地址 http: ...
- python编程基础知识—列表(二)
3操作列表 3.1 遍历整个列表 使用for循环 cars = ['bmw','audi','toyota','Jeep'] for i in cars: print(i) bmw audi toyo ...
- windows 快捷方式(.lnk)代码执行漏洞(CVE-2017-8464 )[附EXP生成工具]
最近看到网上曝光了一个windows远程代码执行的漏洞,黑客可以通过一个快捷方式在用户电脑上执行任意指令,于是便对该漏洞进行了部分分析. 1. 漏洞描述: MicrosoftWindows .LNK ...
- wpf mvvm datagrid DataGridTemplateColumn的绑定无效的可能原因之一!
昨天在mvvm wpf的开发中遇到一个问题,绑定不起作用,编辑阶段没问题也没有提示找不到对应的绑定,但是在运行之后却不起作用,查了很多资料,说法不一,有些是要删除datagrid的一行,直接绑定del ...
- windows 注入 之 SetWindowHookEx
前面的项目用到hook 还是在半年前,没想到最近有用到了,说实话,在项目组就提出,能用别的办法还是不要用这种,毕竟不太正道(感觉哈). 最近又牵扯到第三方对接的任务,没办法我又回到了HOOK上了.与窗 ...