Web Maven

目录

  • 1 简介
  • 2 Maven的安装
  • 3 Maven下载依赖jar时常见问题
  • 4 Maven项目创建步骤
  • 5 Maven国内中央仓库的更换
  • 6 maven项目的配置文件pom.xml介绍
  • 7 Maven项目操作示例

1 简介

Apache Maven 是一种用于软件项目管理工具,基于 Project Object Model(POM),用来管理项目的构建,汇报及文档生成等功能。
Maven:用来管理项目的工具。
主要职责是:

  1. 用来下载项目的外部引用。
    原始的外部引用方式存在两个痛点:
    (1)手动重复下载大量的jar包这个过程很繁琐。
    (2)不同的项目使用不同版本号的jar包,不同jar包之间的对应关系又是不一致的。
    为了解决这两个痛点,Maven应运而生,类似于一个中央仓库、应用中心的存在,一次性会下载好第一个jar包下面所包含的所有其他jar包,不需要像原始方式一样手动重复下载大量的jar包。
  2. 用来将本项目打包。
    要注意Tomcat不能直接运行程序员的.java代码,只能运行.jar或.war文件,.jar或.war文件中是多个.class字节码文件的集合。
    所以我们通过maven将程序员的.java代码打包成了.jar或.war文件,然后就给tomcat进行运行。
  3. 用来将打包的项目发布到服务器(例如tomcat)运行。

它构建了一个Java的生态。

2 Maven的安装

Maven不需要安装,因为IDEA已经自带了Maven,直接使用就好。

3 Maven下载依赖jar时常见问题

Maven下载依赖jar的时候会出现各种各样奇葩的问题,原因是因为中央仓库不在国内。这时我们不得不了解一下Maven添加引用的流程:
在这里插入图片描述
如上图所示,比如现在有一个项目,需要jdbc这个jar包。我们首先需要在项目里添加一个jdbc依赖包,这个时候它会去中央仓库下载jdbc这个jar包,但它不是直接将这个jar包下载的你的项目,而是先下载到本地仓库中(为什么这样做呢?是为了加速和减少中央仓库的使用频率),然后再把本地仓库的这个jar包添加到项目中去。

介于这个过程有点长,所以它出现的问题也比较多,主要分为两种现象:

  1. 包全部丢失现象。
    中央仓库往本地仓库拉jar包的时候,因为中央仓库是国外的,物流比较长,所以会存在包丢失的情况,包就拉不下来了,然后就出问题了。
    【解决方案】:这种情况比较好处理,maven工具里面有一个重新导入,我只需要点击重新导入,就可以把包重新拉下来了,总有一次会拉成功的。
  2. 包部分丢失现象。
    因为网络等问题,在下载一个包的时候只下载了一半,一部分的内容丢了,就出问题了。
    【解决方案】:这种情况非常常见,需要把本地仓库的所有文件全部删除,然后重新下载。

或者直接把国外的这个中央仓库换成国内的中央仓库(阿里云或网易云)进行下载,这两种问题的出现也会减少很多。
总结:
Maven出现问题的解决方案:

  1. 把maven下载源改成国内。
  2. 删除本地的maven仓库,重复下载不低于5次。
  3. 关闭电脑杀毒软件和防火墙。关闭防火墙步骤如下图所示:
    在这里插入图片描述

4 Maven项目创建步骤

Maven项目创建步骤:

  1. 创建一个新项目。
    在这里插入图片描述
  2. 选择 maven 类型的项目,并勾中使用模板(也就是Create from archetype这块),并向下拉找到maven-archetype-quickstart,点击next。
    在这里插入图片描述
  3. 设置项目名称(不要起中文的)、存放路径(不要存在c盘)和项目属性设置 ,点击next。
    在这里插入图片描述
  4. User settings file:用来更换中央仓库地址的;Local repository:本地仓库的存储地址,并把这两个后面的Override都给勾上,点击finish即可完成创建。
    在这里插入图片描述
  5. 等待出现如下图所示的情况是maven项目是加载(下载)成功的。
    在这里插入图片描述
  6. 出现如下图所示的一个目录,才能说明你的maven项目是创建完成的(如果没有这个目录的,说明你下载失败了,重新创建一个maven项目即可解决此问题)。
    里面的main/java路径下存放的是java所有源代码,所有java源代码都会放到这个路径;test/java下面是写单元测试的;pom.xml是maven项目的配置文件。
    在这里插入图片描述
  7. 然后运行里面自带的helloworld代码,如果运行成功,才能说明这个maven项目是创建成功的。
    在这里插入图片描述

5 Maven国内中央仓库的更换

Maven国内中央仓库的更换:

  1. 使用Idea将User settings file目录下的settings.xml文件打开。
    在这里插入图片描述
  2. 找到< mirrors >这个节点,把阿里云的< mirror >节点直接加入进去。
    在这里插入图片描述
  3. 点击保存settings.xml文件即可完成更换。

6 maven项目的配置文件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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 上面的内容完全不用管,使用自动生成的就行,是用于一些校验规则指定的 --><!-- 这里指定的是 POM 的版本,也不需要动 --><modelVersion>4.0.0</modelVersion><!-- 这里是项目的描述信息,是新建项目时我们填入的内容 --><groupId>com.peixinchen</groupId>  <!-- 组织ID --><artifactId>Fo</artifactId>    <!-- 项目ID --><version>1.0-SNAPSHOT</version>   <!-- 版本号 --><name>fo</name> <!-- 项目名称 --><url>http://www.example.com</url>  <!-- 本项目网站地址,用来对这个项目做说明的,如果没有则可以留空 --><!-- 可以配置一些参数 --><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 项目编码设置成UTF-8,因为它支持中文 --><!-- 默认情况下,maven 会使用 1.5 版本进行代码检查,一般我们都修改为 1.8 --><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies>    <!--所有外部引用jar都在这个里面 --><!-- 这里指定了我们需要的依赖 --><dependency><groupId>junit</groupId>     <!-- 组织id --><artifactId>junit</artifactId>   <!-- 项目id --><version>4.11</version>   <!--版本号 --><scope>test</scope>  <!--作用域,这个test表示当前jar只有在测试阶段才用,如果什么也不写表示项目整个生命周期都要引用此jar包 --></dependency></dependencies><!-- 一般我们把构建相关的配置放这里 --><build><!-- 使用各种插件 --><plugins><!-- 这个插件的目的是帮我们把依赖复制到 target\lib 文件夹下,用于一会打 jar 包使用 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.1.1</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>${project.build.directory}/lib</outputDirectory><includeScope>runtime</includeScope></configuration></execution></executions></plugin><!-- 这个插件是用于打 jar 包的 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><archive><manifest><!-- 这里指定 Main-Class --><mainClass>Main</mainClass><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest></archive></configuration></plugin></plugins></build></project>

7 Maven项目操作示例

在此我们以实现数据库查询为例进行介绍。

  1. 创建maven项目。
  2. 添加外部引用(也就是添加外部jar包)
    打开maven中央仓库,百度直接搜maven选择https://mvnrepository.com链接进入即可。
    进入页面后通过下面步骤添加引用:
    在这里插入图片描述
    如果出现External Libraries下面出现了Maven:mySQL:…这个包则说明成功下载,引入mysql的jar包是正常的。
  3. 我们直接在App.java里写代码,写完之后直接运行即可。
public class App{public static void main(String[] args) {//1.获得DataSourceMysqlDataSource dataSource = new MysqlDataSource();//url,username,passworddataSource.setURL("jdbc:mysql://localhost:3306/test?characterEncoding=utf8");dataSource.setUser("root");dataSource.setPassword("root"); //写自己mysql的密码//2.获得connectionConnection connection = dataSource.getConnection();//3.拼接SQLString sql = "select * from student where id=?";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,2);//4.得到ResetSetResultSet resultSet = statement.executeQuery();while(resultSet.next()){System.out.println("查询的数据name:"+resultSet.getString("name"));//5.释放链接resultSet.close();statement.close();connection.close();}}
}

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

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

相关文章

将预测的分割结果可视化

一、Login | MaCVi 该网站下注册一个账号&#xff0c;登录进去 二、跑完infer的代码后&#xff0c;在output文件下面存储预测的分割结果mask&#xff0c;将其打包上传到macvi.org相同的赛道 打包tip: #压缩文件 zip -r test.zip file然后利用Xtfp从服务器传输到本地&#xff…

EasyExcel的使用

1、简介 在日常项目开发中&#xff0c;经常会遇到解析excel文件中的数据、或者将某些数据导出成excel文件的需求&#xff0c;目前Java解析、生成Excel比较有名的框架有Apache POI、jxl&#xff0c;但是它们都存在一个严重的问题就是非常的耗内存。POI有一套Sax模式的API可以在一…

高质量IP代理哪里有?怎样选择合适的代理ip?

IP地址是由IP协议所提供的一种统一的地址格式&#xff0c;通过为每一个网络和每一台主机分配逻辑地址的方式来屏蔽物理地址的差异。根据IP地址的分配方式&#xff0c;IP可以分为动态IP与静态IP两种。 对于我们企业与用户来说&#xff0c;静态代理ip和动态代理ip&#xff0c;都会…

pytest 教程

1. 安装pytest 目前我使用的python版本是3.10.8 pip install pytest命令会安装下面的包&#xff1a; exceptiongroup-1.2.0-py3-none-any.whl iniconfig-2.0.0-py3-none-any.whl packaging-23.2-py3-none-any.whl pluggy-1.4.0-py3-none-any.whl pytest-8.0.2-py3-none-any.…

H5小游戏,象棋

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的,私信本人,发演示地址,可以后再订阅,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、开心消消乐、扑鱼达人、飞机大战等等 <!DOCTYPE html PUBLIC "-//W3C/…

一台服务器,最大支持的TCP连接数是多少?

一个服务端进程最大能支持多少条 TCP 连接&#xff1f; 一台服务器最大能支持多少条 TCP 连接&#xff1f; 一、原理 TCP 四元组的信息&#xff1a;源IP、源端口、目标IP、目标端口。 一个服务端进程最大能支持的 TCP 连接个数的计算公式&#xff1a;最大tcp连接数客户端的IP…

Python - getpass

文章目录 关于 getpass基本使用语法说明其它 关于 getpass getpass 是 Python 自带标准库 Python 官方文档 - getpass https://docs.python.org/3/library/getpass.html 基本使用 我们在看视频教程中&#xff0c;老师如果不想在代码中暴露 token、密码之类的信息&#xff0c…

九型人格测试,3号成就型人格的职业分析

成就型人格&#xff08;也叫3号人格&#xff09;&#xff0c;在九型人格中&#xff0c;是一种喜欢争强好胜的人格&#xff08;这跟和平型人格具有强烈的对比性&#xff09;。这种人格的人&#xff0c;对于一切给自己带来成就感的事情会表现得非常上心&#xff0c;不会有丝毫地疏…

C++引用占用内存空间吗

C引用占用内存空间吗 看到很多人说引用不占用内存空间&#xff0c;实际跑了一下 &#xff0c;下面是VC2008和VS2010转到反汇编&#xff0c;我们可以清楚地看到引用是占用内存空间的****&#xff0c;只是他这个内存空间里存放者引用对象的地址 #include<iostream> using…

基于springboot+vue的医疗报销系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

android开发工程师,Android开发三年月薪才12K

二、Android开发者的四个层级 按我的理解&#xff0c;无论是Android开发者还是其他的开发者都可以分为四个层级&#xff0c;可依次对应普通、熟练、优秀、卓越这四个词。 一、 普通 普通开发者&#xff0c;能够使用一定的专项技术&#xff0c;完成别人分配的模块的开发。在工…

Springboot 过滤器、拦截器、全局异常处理

Springboot 过滤器、拦截器、全局异常处理 一 过滤器&#xff08;Filter&#xff09; 过滤器是JavaWeb三大组件&#xff08;Servlet&#xff0c;Filter&#xff0c;Listener&#xff09;之一。 Filter可以把对资源的请求拦截下来&#xff0c;从而实现一些功能。 注意&#…