jar包不统一,jar包不兼容
*
工程升级维护过程操作繁琐
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
*
POM (Project Object Model):项目对象模型
官网: http://maven.apache.org/
下载地址: http://maven.apache.org/download.cgi
设置MAVEN自身的运行环境,需要配置MAVEN_HOME测试环境配置结果
在高级系统设置里面
在命令行当中输入以下命令测试是否安装成功
mvn -version
证明安装成功
仓库:用于存储资源,包含各种jar包
仓库
仓库:用于存储资源,包含各种ar包
仓库分类:
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源
中央仓库:Maven团队维护,存储所有资源的仓库
私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
私服的作用:
保存具有版权的资源,包含购买或自主研发的jar
中央仓库中的jar都是开源的,不能存储具有版权的资源
一定范围内共享资源,仅对内部开放,不对外共享
什么是坐标?
Maven中的坐标用于描述仓库中资源的位置https://repo1.maven.org/maven2/
*
Maven坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如: org.mybatis)
artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
version:定义当前项目版本号
packaging:定义该项目的打包方式
*
Maven坐标的作用
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成
Maven启动后,会自动保存下载的资源到本地仓库
默认位置
<localRepository>${user.home }/.m2/repository</localRepository>
当前目录位置为登录用户名所在目录下的.m2文件夹中
<localRepository>D:/Maven/repository</localRepository>
当前目录位置为D:/Maven/repository
文件夹中
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>
●全局settting定义了当前计算器中Maven的
●公共配置用户settting定义了当前用户的配置
在刚刚Maven的安装目录旁边创建Test目录
进入Test,创建project
进入project,创建java-project
进入java-project,创建src
其他依次类似创建如下目录结构
在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>
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
mvn archetype:generate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
mvn archetype:generate
-DgroupId=com.itzheng
-DartifactId=java-project2
-DarchetypeArtifactId=maven-archetype-quickstart
-Dversion=0.0.1-snapshot
-DinteractiveMode=false
在刚刚的Test的project目录下输入
生成Java项目
自动创建好了对应的文件
mvn archetype:generate
-DgroupId=com.itheima
-DartifactId=web-project
-DarchetypeArtifactId=maven-archetype-webapp
-Dversion=0.0.1-snapshot
-DinteractiveMode=false
创建成功
左边为Java项目右边为web项目
选择Maven的安装地址
选择Maven的配置文件
选择本地仓库位置
进入工程后右下角点击
<?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>
package com.itzheng.test;
import org.junit.Test;
public class Demo01 {
@Test
public void test(){
System.out.println("Test");
}
}
运行测试
运行结果
以下内容不需要动
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>8090</port>
<path>/</path>
</configuration>
</plugin>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
查看左边我们发现缺少一些目录
创建Java目录
创建其他目录结构
package com.itzheng.dao;
public class UserDao {
public void testUserDao(){
System.out.println("这里是Dao");
}
}
package com.itzheng.service;
public class UserService {
public void testUserService(){
System.out.println("这里是Service");
UserDao userDao = new UserDao();
userDao.testUserDao();
}
}
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);
}
}
如果运行报错删除web.xml当中一些没有用 的留下这些即可
访问该地址
控制台输出结果
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_44757034/article/details/120238561
内容来源于网络,如有侵权,请联系作者删除!