Maven

Maven

    • 1. Maven简介
    • 2. Maven安装搭建(windows)
      • 2.1 下载maven
      • 2.2 安装配置maven
      • 2.3 配置maven本地仓库
    • 3. Maven安装搭建(linux)
      • 3.1 下载maven
      • 3.2 安装配置maven
      • 3.3 编辑 settings.xml 文件
      • 3.4 添加 maven 环境变量内容
    • 4. IntelliJ IDEA创建web项目
      • 4.1 创建项目
      • 4.2 创建源码目录
      • 4.3 在java目录中添加MyServlet.java代码
      • 4.4 在pom.xml文件添加必要的dependency依赖
      • 4.5 修改web.xml文件
      • 4.6 在main/webapp下修改index.jsp,没有则新建
      • 4.7 开始tomcat配置
      • 4.8 启动调试tomcat

1. Maven简介

Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。

相信读到这篇文章的许多人有过或多或少的项目经历,说到项目,在纯是原生态代码无框架的时候,我们最痛苦的一件事就是导入各种各样的jar包,jar包太多以至于我们很难管理,项目功能稍多,就会出现好多好多的包,你要考虑在哪找这个包,还有它的包的依赖,让人很痛苦!这个时候,我们的救世主maven出现,轻松帮你解决这些问题。

Maven优点

1、原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下,而借Maven,可以将jar包仅仅保存在“仓库”中,有需要使用的工程只需要“引用”这个文件,并不需要重复复制到工程中。
2、原来的项目中所需要的jar包都是提前下载好的,而Maven在联网状态下会自动下载所需要的jar包。首先在本地仓库中找,找不到就在网上进行下载。
3、原来的项目中一个jar包所依赖的其他jar包必须手动导进来,而Maven会自动将被依赖的jar包导进来。
4、原来的项目一个项目就是一个工程,而借助Maven可以将一个项目拆分成多个工程。

项目构建过程:

  • 1.项目清理:清理之前编译的代码。
  • 2.编译:将程序源代码编译为虚拟机可执行的代码,也就是 class 文件。maven 可以帮我们批量编译一堆代码。
  • 3.测试:maven 可以执行测试程序代码,验证你的功能是否正确。
  • 4.打包:将所有的 class 文件、配置文件等资源放到一个压缩文件中。 对于 java 程序,压缩文件是 xx.jar,对于 web 应用,压缩文件扩展名是 xx.war。
  • 5.安装:将 jar 文件或者 war 文件安装到本机仓库中。
  • 6.部署:将程序部署到服务器上,我们可以通过网址进行访问。

Maven可以帮我们做什么?

  • 1.自动下载需要的 jar 包,管理 jar 包的版本以及它们之间的依赖关系。
  • 2.帮你编译程序
  • 3.帮你打包程序
  • 4.帮你部署程序
  • 5.帮你管理项目中各个模块的关系

2. Maven安装搭建(windows)

前提是安装jdk(Maven 工作时需要通过网络下载各种插件以完成任务,因此应保证网络的通畅)

2.1 下载maven

maven官网 http://maven.apache.org
在这里插入图片描述

2.2 安装配置maven

点击下载二进制的 apache-maven-3.9.2-bin.zip 进行解压,然后在系统环境中配置环境变量,在path中配置到bin目录

  • 配置环境变量
    • 1.新增变量
      变量名:MAVEN_HOME
      变量值:maven 的安装路径
    • 2.修改 path
      增加变量值:%MAVEN_HOME%\bin

配置成功后输入命令mvn -version

D:\>mvn -version
Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
Maven home: D:\Resouce\tools\apache-maven-3.9.2
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_221\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

2.3 配置maven本地仓库

为什么要修改本地仓库?

Maven 默认的本地仓库在C/用户/.m2 文件夹里,随着下载的 jar 包越来越多,系统盘会越来越满,电脑会越来越卡,所以建议在 C 盘之外建一个本地仓库

如何将下载的 jar 文件存储到我们指定的仓库中呢?

需要在 maven 的服务器解压的文件中找到 conf 文件夹下的 settings.xml文件进行修
  • 添加本地仓库标签:
<localRepository>你的repository目录</localRepository>

例如:

<localRepository>D:\mavenRepository</localRepository>
  • 配置阿里云镜像下载地址
    因为国外远程仓库下载 jar 包速度慢,国内阿里云下载速度快。
在 setting.xml 文件里面添加:<mirror>  <id>alimaven</id>  <name>aliyun maven</name>  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>;  <mirrorOf>central</mirrorOf>          </mirror>
  • 完整的 setting.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\mavenRepository</localRepository><mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror>
</mirrors>
</settings>

3. Maven安装搭建(linux)

3.1 下载maven

  • 在官网下载安装包,本次选择.tar.gz
  • 上传安装包到服务器

3.2 安装配置maven

  • 创建maven目录
  • 解压安装包至maven目录
  • 创建maven仓库目录
mkdir -p /usr/local/maven
tar -zxvf /home/apache-maven-3.9.3-bin.tar.gz -C /usr/local/maven
cd /usr/local/maven/apache-maven-3.9.3/
cd conf/
mkdir -p /m2/repository

3.3 编辑 settings.xml 文件

  • 修改资源库位置
  • 添加阿里云国内镜像
<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd"><localRepository>/m2/repository</localRepository><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf></mirror></mirrors><profiles></profiles>
</settings>

3.4 添加 maven 环境变量内容

vi /etc/profile
...
MAVEN_HOME=/usr/local/maven/apache-maven-3.8.5
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH
source /etc/profile

4. IntelliJ IDEA创建web项目

一定要是旗舰版或者破解版,社区版本不支持
一定要是旗舰版或者破解版,社区版本不支持
一定要是旗舰版或者破解版,社区版本不支持

4.1 创建项目

首先利用maven创建webapp,注意一定选择maven-archetype-webapp
在这里插入图片描述

4.2 创建源码目录

将工程命名为MyJava,等工程创建好后,创建源码目录,默认是没有的,一般放在main下面,目录名叫java
在这里插入图片描述

4.3 在java目录中添加MyServlet.java代码

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class MyServlet extends HttpServlet {protected void doPods(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException, IOException {doGet(request,response);}protected void doGet(HttpServletRequest request,HttpServletResponse response) throws javax.servlet.ServletException,java.io.IOException{//request.getRequestDispatcher("/index.jsp").forward(request,response);response.setContentType("text/html");response.getWriter().println("my first servlet code");}
}

4.4 在pom.xml文件添加必要的dependency依赖

<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>org.example</groupId><artifactId>MyJava</artifactId><packaging>war</packaging><version>${project.release.version}</version><name>MyJava 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>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><!--根据个人需要自己修改--><source>11</source><target>11</target><webResources><resource><directory>src/main/webapp</directory><targetPath>/</targetPath></resource></webResources></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.4.3</version></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></build>
<!--<properties><project.release.version>0.1-SNAPSHOT</project.release.version></properties>
--><profiles><profile><id>maven-releases</id><properties><project.release.version>0.1</project.release.version></properties></profile></profiles><distributionManagement><repository>	<!-- release 版本上传用的仓库 --><id>maven-releases</id>	<!-- server 的 id --><url>http://192.168.17.133:8081/repository/maven-releases/</url>	<!-- 仓库的 URL --></repository><snapshotRepository><id>maven-snapshots</id><url>http://192.168.17.133:8081/repository/maven-snapshots/</url></snapshotRepository></distributionManagement></project>

4.5 修改web.xml文件

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><servlet><servlet-name>MyServlet</servlet-name><servlet-class>MyServlet</servlet-class></servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/demo</url-pattern></servlet-mapping>
</web-app>

4.6 在main/webapp下修改index.jsp,没有则新建

在这里插入图片描述

<%--Created by IntelliJ IDEA.User: yzcnDate: 2023/7/19Time: 17:28To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>java demo</title>
</head>
<body>
welcome to learn java,come on ~ 20230719
</body>
</html>

4.7 开始tomcat配置

配置server目录和端口
在这里插入图片描述
在这里插入图片描述
配置tomcat部署
在这里插入图片描述

4.8 启动调试tomcat

配置好tomcat后,就可以在右侧看到绿色的按钮,单击后就可以启动tomcat
输入localhost:8080/MyJava_war/就可以看到这个内容
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/29304.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx基础(复习理论篇)

一、Nginx基本概念 1、Nginx是什么 Nginx是一个高性能的Http和反向代理服务器&#xff0c;其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。 Nginx专为性能优化而开发&#xff0c;性能是其最重要的考量&…

matlab中画有重影的机器人运动过程【给另一个机器人设置透明度】

1、前言如题 2、参考连接如下 How to plot two moving robot in the same figure and change one of them transparency&#xff1f; - MATLAB Answers - MATLAB Central (mathworks.cn)3、代码&#xff1a;【找到figure中对应对象并设置属性】 % Create two instances of a…

EXCEl——移除单元格中换行符

方法一&#xff1a;使用清除格式功能 步骤如下: 1.选中需要取消换行的单元格 2.在“开始"选项卡中找到"清除”功能&#xff0c;点击下拉菜单中的“清除格式" 3.这时单元格的换行就被取消了。 清除前效果图 清除后效果图 方法一&#xff1a;使用函数功能 步骤…

java贪心算法案例

1.零钱找回问题 这个问题在我们的日常生活中就更加普遍了。假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K元&#xff0c;至少要用多少张纸币&#xff1f;用贪心算法的思想&#xff0c;很显然&#xff0c;每一步…

高时空分辨率、高精度一体化预测技术之风、光、水能源自动化预测技术

能源是国民经济发展和人民生活必须的重要物质基础。在过去的200多年里&#xff0c;建立在煤炭、石油、天然气等化石燃料基础上的能源体系极大的推动了人类社会的发展。但是人类在使用化石燃料的同时&#xff0c;也带来了严重的环境污染和生态系统破坏。近年来&#xff0c;世界各…

[RK3568] AMP架构

Rockchip 平台异构多系统 AMP &#xff08;非对称多核架构&#xff09;的开发软件包&#xff0c;支持 Linux(Kernel) 、 Standalone(Hal)、 RTOS(RT-Thread) 组合 AMP 构建形式。 Standalone(Hal) HAL&#xff1a;Hardware Abstraction Layer&#xff0c;硬件抽象层。 硬件抽…

App的回归测试,有什么高效的测试方法?

直接抛出观点&#xff1a;高效的测试方法当然有&#xff0c;那就是采用【接口自动化】。 为了系统阐述这个问题&#xff0c;让你能有较强烈的获得感&#xff0c;本篇文章将采用下列结构进行展开&#xff1a; 1、回归测试&#xff0c;测哪些东西&#xff1f; 2、传统的回归测试…

二维费用背包(既有最大体积限制,又多加了一个最大重量限制)

1:分析状态转移方程式 2:ACcode: #include<bits/stdc.h> using namespace std; const int N1e310; int f[N][N],v[N],w[N],m[N]; void solve() {int a,b,c;cin>>a>>b>>c;for(int i1; i<a; i) cin>>v[i]>>m[i]>>w[i];//酷似01背…

SDUT 2023 summer team contest(for 22) - 1-Gym - 102220

B - Balanced Diet 题意&#xff1a;这题题意有点难搞啊&#xff0c;就是有n个物品&#xff0c;一个有m种&#xff0c;对于第 i 种物品如果你要买它就至少买 l[i]个&#xff0c;然后就是给你n行&#xff0c;每行两个数&#xff0c;ai,bi,表示这个糖果类型为bi&#xff0c;价值为…

非50欧系统阻抗的S参数测试

1. S参数依赖于系统阻抗 S参数的定义需要约定一个系统阻抗。同一个微波电路&#xff0c;在不同系统阻抗下的S参数是不同的。例如&#xff0c;50欧电阻在50欧系统阻抗下的S11为零&#xff0c;是没有反射的匹配状态&#xff1b;但50欧电阻在75欧系统阻抗下的S11不为零&#xff0…

Git教程

版本库 创建版本库 通过git init命令把目录变成Git可以管理的仓库 把一个文件放到Git仓库只需要两步&#xff1a; 第一步&#xff0c;用命令git add告诉Git&#xff0c;把文件添加到仓库&#xff1a; git add readme.txt执行上面的命令&#xff0c;没有任何显示&#xff0…

【Linux】进程间通信——管道/共享内存

文章目录 1. 进程间通信2. 管道匿名管道命名管道管道的特性管道的应用&#xff1a;简易的进程池 3. System V共享内存共享内存的概念共享内存的结构共享内存的使用代码实现 1. 进程间通信 进程间通信&#xff08;Inter-Process Communication&#xff0c;简称IPC&#xff09;是…