Java之MavenIDEA版入门到精通(一篇文章精通系列)
Posted 蓝盒子itbluebox
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之MavenIDEA版入门到精通(一篇文章精通系列)相关的知识,希望对你有一定的参考价值。
Java之Maven【IDEA版】入门到精通
一、Maven简介
1、传统项目管理状态分析
-
jar包不统一,jar包不兼容
-
工程升级维护过程操作繁琐
2、Maven是什么
-
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
-
POM (Project Object Model):项目对象模型
3、Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的、统一的项目结构
二、下载与安装
1、Maven下载
官网: http://maven.apache.org/
下载地址: http://maven.apache.org/download.cgi
2、Maven安装
- Maven属于绿色版软件,解压即安装
- 在Maven的解压文件旁边创建repository空文件
- Maven环境变量配置依赖Java,需要配置JAVA_HOME
设置MAVEN自身的运行环境,需要配置MAVEN_HOME测试环境配置结果
在高级系统设置里面
在命令行当中输入以下命令测试是否安装成功
mvn -version
证明安装成功
三、Maven基础概念
1、仓库
仓库:用于存储资源,包含各种jar包
仓库
- 仓库:用于存储资源,包含各种ar包
- 仓库分类:
- 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
- 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
- 中央仓库:Maven团队维护,存储所有资源的仓库
- 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
- 私服的作用:
- 保存具有版权的资源,包含购买或自主研发的jar
- 中央仓库中的jar都是开源的,不能存储具有版权的资源
- 一定范围内共享资源,仅对内部开放,不对外共享
- 保存具有版权的资源,包含购买或自主研发的jar
2、坐标
-
什么是坐标?
Maven中的坐标用于描述仓库中资源的位置https://repo1.maven.org/maven2/
-
Maven坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: org.mybatis)
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式
-
Maven坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
3、本地仓库配置
- Maven启动后,会自动保存下载的资源到本地仓库
- 默认位置
<localRepository>${user.home }/.m2/repository</localRepository>
当前目录位置为登录用户名所在目录下的.m2文件夹中
- 自定义位置
<localRepository>D:/Maven/repository</localRepository>
当前目录位置为D:/Maven/repository
文件夹中
4、 Maven 阿里云(Aliyun)仓库
Maven 仓库默认在国外, 国内使用难免很慢,我们可以更换为阿里云的仓库。
修改 maven 根目录下的 conf 文件夹中的 settings.xml 文件,在 mirrors 节点上,添加内容如下:
<mirrors>
<mirror>
<!-- mirror -->
<id>nexus-aliyun</id>
<!-- -->
<mirrorOf>central</mirrorOf>
<!-- -->
<name>Nexus aliyun</name>
<!-- URL -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
5、全局setting与用户setting区别
●全局settting定义了当前计算器中Maven的
●公共配置用户settting定义了当前用户的配置
三、第一个Maven项目(纯手工制作)
1、创建目录结构
在刚刚Maven的安装目录旁边创建Test目录
进入Test,创建project
进入project,创建java-project
进入java-project,创建src
其他依次类似创建如下目录结构
2、 在src同层目录下创建pom.xml
在pom.xml当中写入如下内容
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itzheng</groupId>
<artifactId>java-project</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
3、 Maven项目构建命令
(1)手工构建
Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔
在D:\\Maven\\Test\\project\\java-project\\src\\main\\java\\com\\itzheng当中创建一个测试类
写入如下内容
public class Hello
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
在D:\\Maven\\Test\\project\\java-project打开cmd
mvn install
指定下载相关依赖到repository当中
成功
在repository我们发现一些自动下载好的jar
同时在项目目录下自动创建target文件夹
在里面我们发现打包好的jar,在此处打开cmd,
框当中输入cmd回车
进入classes当中
输入以下内容:java -cp . com.itzheng.Htllo
(2)插件创建工程
- 创建工程语法
mvn archetype:generate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
- 创建java工程
mvn archetype:generate
-DgroupId=com.itzheng
-DartifactId=java-project2
-DarchetypeArtifactId=maven-archetype-quickstart
-Dversion=0.0.1-snapshot
-DinteractiveMode=false
在刚刚的Test的project目录下输入
生成Java项目
自动创建好了对应的文件
- 创建web工程
mvn archetype:generate
-DgroupId=com.itheima
-DartifactId=web-project
-DarchetypeArtifactId=maven-archetype-webapp
-Dversion=0.0.1-snapshot
-DinteractiveMode=false
创建成功
左边为Java项目右边为web项目
四、第一个Maven项目(IDEA生成)
1、IDEA配置Maven
选择Maven的安装地址
选择Maven的配置文件
选择本地仓库位置
2、手工创建Java项目
(1)工程搭建
进入工程后右下角点击
(2)在pom.xml当中引入测试junit的依赖
<?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.itzheng.test</groupId>
<artifactId>Java-maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(3)创建测试类
package com.itzheng.test;
import org.junit.Test;
public class Demo01 {
@Test
public void test(){
System.out.println("Test");
}
}
运行测试
运行结果
3、手工创建Web项目
(1)Web项目搭建
以下内容不需要动
(2)添加依赖
- 默认引入的是jetty我也可以同时加上Tomcat
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8090</port>
<path>/</path>
</configuration>
</plugin>
- 添加Servlet依赖
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
(3)补齐缺少的目录
查看左边我们发现缺少一些目录
创建Java目录
创建其他目录结构
(4)创建对应的类
- UserDao
package com.itzheng.dao;
public class UserDao {
public void testUserDao(){
System.out.println("这里是Dao");
}
}
- UserService
package com.itzheng.service;
public class UserService {
public void testUserService(){
System.out.println("这里是Service");
UserDao userDao = new UserDao();
userDao.testUserDao();
}
}
- UserServlet
package com.itzheng.web;
import com.itzheng.service.UserService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/User")
public class UserServlet extends HttpServlet {
// 处理 GET 方法请求的方法
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
UserService userService = new UserService();
userService.testUserService();
}
// 处理 POST 方法请求的方法
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
(5)测试运行
如果运行报错删除web.xml当中一些没有用 的留下这些即可
访问该地址
http://localhost:8090/User
控制台输出结果
以上是关于Java之MavenIDEA版入门到精通(一篇文章精通系列)的主要内容,如果未能解决你的问题,请参考以下文章
Java之Spring Boot入门到精通IDEA版SpringBoot原理分析,SpringBoot监控(一篇文章精通系列)下
Java之Spring AOP入门到精通IDEA版(一篇文章精通系列)
Java之Spring入门到精通IDEA版IoC和DI注解开发(一篇文章精通系列)
Java之Spring入门到精通IDEA版IoC和DI注解开发(一篇文章精通系列)