Apache Maven:从构建到部署,一站式解决方案

简介: Apache Maven:从构建到部署,一站式解决方案

一、Maven介绍

1. Maven是什么?

       Maven是一个用于构建和管理Java项目的开源工具。它提供了一种标准化的项目结构、构建过程和依赖管理机制,使得开发人员能够更轻松地构建、测试和部署Java应用程序。

2.Maven的作用?

       传统工程我们直按把jar包放置在项目中,在真的项目开发中我们需要用到许多jar包,我们还需要把jar下载到本地然后放置在项目里,显然这样是很不方便的。而Maven工程把jar包放置在仓库中,项目中只用放置jar包的坐标(路径)。而用了 Maven 之后,需要什么包,直接在 pom.xml 中添加几行 xml 代码(添加所依赖jar包的坐标),指定包名、版本等,Maven就会自动从仓库里下载jar包。

pom.xml 解释:

Maven使用POM(项目对象模型)文件来描述项目的结构、依赖关系和构建配置。POM是一个XML文件,其中包含了项目的元数据、构建配置、依赖项和插件等信息。

二、Maven仓库介绍

        Maven库是指存储和管理Java项目依赖的仓库。它是Maven构建工具的核心组成部分,用于管理项目的依赖关系和版本控制。

2.1 库的分类

Maven库分为两种类型:本地库和远程库。

  1. 本地库:本地库是存储在本地计算机上的Maven仓库。当你第一次构建一个项目时,Maven会自动下载所需的依赖并将其保存在本地库中。之后,当你构建其他项目时,Maven会检查本地库中是否已经存在所需的依赖,如果存在则直接使用,避免重复下载。
  2. 远程库:远程库是存储在远程服务器上的Maven仓库。远程库又分为三种:
  1. 中央仓库:架设在Internet上,它是一个公共的、全球性的仓库,包含了大量的开源Java项目的依赖。
  2. 私服:一般用于公司,架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务。
  3. 中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快响应用户请求。

使用Maven库的好处包括:

  • 管理依赖:Maven库提供了一个集中管理项目依赖的方式,简化了项目配置和构建过程。
  • 版本控制:Maven库可以确保项目使用的依赖版本一致,避免了版本冲突和兼容性问题。
  • 自动下载:Maven库可以自动下载项目所需的依赖,减少了手动下载和配置的工作量。
  • 缓存机制:Maven库会缓存已下载的依赖,提高了构建的速度和效率。

       总之,Maven库是一个重要的工具,可以帮助开发人员更方便地管理和使用项目的依赖,提高开发效率和代码质量。

三、Maven安装与配置

3.1 Maven安装

👉 点击进入 Maven官网下载Maven安装包

下载后得到的压缩包:

3.2 Maven环境配置

1. 解压Maven压缩包 --> 赋值有bin目录的路径

2. 进入电脑设置里的高级系统设置 --> 点击环境变量

3. 新建一个系统变量 将Maven路径粘贴上去

4. 配置环境变量 path

5. 打开cmd输入 mvc -version 进行测试如图下就是配置成功了

3.3 仓库配置

1. 配置本地仓库,新建一个文件作为仓库并复制其路径

2. 打开Maven文件下的conf文件夹下的settings.xm文件,找到localrepository(复制一个新的)将之前建的仓库路径放进去

3. 如果考虑到性能的话可以修改它的镜像换成阿里云镜像

<mirror>

  <id>alimaven</id>

  <name>aliyun maven</name>

  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

  <mirrorOf>central</mirrorOf>        

</mirror>

<mirror>  

 <id>alimaven</id>  

 <mirrorOf>central</mirrorOf>  

 <name>aliyun maven</name>  

 <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>  

</mirror>

四、Eclipse与Maven配置

1. 进入Eclipse进入Preferences --> maven --> installation --> add

确定后要选择 Apache-maven-3.5.0

2. 设置当前电脑配置Maven 点击User settings: Browse... 更换之前配置的conf下的settings.xml文件

       最后就配置完成了,将来你要下载的jar包就会保存到之前创建配置好的文件夹里了(mvn_repository)

五、Maven项目测试

5.1 新建Maven项目步骤及注意事项

1. 在Eclipse里面新建一个Maven项目 Catalog选择Internal本地 --> 下面选择最后一个webapp

2. Group Id: 设置自己的用户id; Artifact Id:编写项目名称

3. 刚新建的Maven项目要下载各种工具,请耐心等待它下载完...

注意: 期间不要退出或关闭网络可能会下载失败,需要把本地仓库清空,重新配置下载。

5.2 解析Maven项目的目录结构

       新建的Maven文件的目录结构不全需要点击项目 --> Build Path --> Source 取消Allow的选项就可以展示项目完整目录结构了

5.3 Maven 依赖配置

1. 去中央库里找到 JSP API 资源

2. 点击进入2.0版本,复制 Maven JSP 依赖内容

3. 将所需要的依赖配置到 pom.xml 文件中,在其中你可修改依赖的版本保存就可以直接下载,下载好后就可以再本地仓库查看jar包了。是不是很方便😂

4. 修改web.xml配置,项目里面是2.多版本的我用的是3.1因此需要修改它的头部版本信息

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

        version="3.1">

5.4 测试pom.xml是否能通过编译

在pom.xml界面运行Maven test

        如果出现这个就是配置成功了,如果不是你就将本地仓库的文件和配置全删了重配,要么你知道是配置的哪个才出了问题,删了出问题的那个依赖就行了.

5.5 项目JDK与WEB版本修改

1. 右击项目 --> Preferences -->Project Facets 先把web和java选项取消再修改版本,修改后点击Apply在选择Dynamic Web 和 Java 。

2. 修改原来web项目的路径点击 Further configuration available 并勾选Generate点击ok后在Apply应用后保存并关闭

3. 完成以上步骤之后可能还是报错就要在pom.xml添加一个插件

<plugins>

       <plugin>

           <groupId>org.apache.maven.plugins</groupId>

           <artifactId>maven-compiler-plugin</artifactId>

           <version>3.7.0</version>

           <configuration>

               <source>1.8</source>

               <target>1.8</target>

               <encoding>UTF-8</encoding>

           </configuration>

       </plugin>

   </plugins>

4. 最后右击项目 Maven --> Update Project 修改项目就ok啦!

5.6 项目测试

这里编写了一个简单的sevlet跳转到index.jsp页面进行测试

package com.ycxw.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/HelloMavenServlet")
public class HelloMavenServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("hello,maven");
    request.getRequestDispatcher("/index.jsp").forward(request, response);
  }
}
相关文章
|
13天前
|
存储 SQL BI
毫秒级查询性能优化实践!基于阿里云数据库 SelectDB 版内核:Apache Doris 在极越汽车数字化运营和营销方向的解决方案
毫秒级查询性能优化实践!基于阿里云数据库 SelectDB 版内核:Apache Doris 在极越汽车数字化运营和营销方向的解决方案
毫秒级查询性能优化实践!基于阿里云数据库 SelectDB 版内核:Apache Doris 在极越汽车数字化运营和营销方向的解决方案
|
1月前
|
Java Maven
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
87 1
|
8天前
|
Java Linux 测试技术
Maven命令大全:从安装到部署,一篇文章带你玩转Maven
本文由木头左介绍Maven,一个用于Java项目管理的工具,涉及Maven的安装配置(Windows和Linux)及核心命令,包括install、package、compile、clean、deploy、test、verify和site。通过这些命令,可以实现构建、打包、编译、测试、部署和生成项目站点等操作。
|
19天前
|
存储 运维 5G
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
数据是 5G 全连接工厂的核心要素,为支持全方位的数据收集、存储、分析等工作的高效进行,联通 5G 全连接工厂从典型的 Lambda 架构演进为 All in [Apache Doris](https://c.d4t.cn/vwDf8R) 的实时/离线一体化架构,并凭借 Doris 联邦查询能力打造统一查询网关,数据处理及查询链路大幅简化,为联通 5G 全连接工厂带来数据时效性、查询响应、存储成本、开发效率全方位的提升。
基于阿里云数据库 SelectDB 内核 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案
|
26天前
|
Java 应用服务中间件 Apache
Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目
Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目
37 1
|
1月前
|
应用服务中间件 网络安全 Apache
构建高性能Web服务器:Nginx vs Apache
【5月更文挑战第16天】Nginx与Apache是两种主流Web服务器,各具优势。Nginx以其轻量级、高并发处理能力和反向代理功能见长,适合大型网站和高并发场景;而Apache以功能丰富、稳定性强闻名,适合企业网站和需要多种Web服务功能的场景。在性能上,Nginx处理高并发更优,Apache则可能在高负载时遭遇瓶颈。在选择时,应根据实际需求权衡。
|
1月前
|
安全 Linux 网络安全
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
Linux _ apache服务器部署 不同域名—访问不同网站(多网站)
|
1月前
|
网络安全 API Apache
如何在win系统部署Apache服务并实现无公网ip远程访问
如何在win系统部署Apache服务并实现无公网ip远程访问
|
1月前
|
网络安全 API Apache
本地快速部署Apache服务器并使用内网穿透实现远程访问
本地快速部署Apache服务器并使用内网穿透实现远程访问
|
1月前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【4月更文挑战第17天】本文介绍了在Java环境下使用Apache Kafka进行消息队列处理的方法。Kafka是一个分布式流处理平台,采用发布/订阅模型,支持高效的消息生产和消费。文章详细讲解了Kafka的核心概念,包括主题、生产者和消费者,以及消息的存储和消费流程。此外,还展示了Java代码示例,说明如何创建生产者和消费者。最后,讨论了在高并发场景下的优化策略,如分区、消息压缩和批处理。通过理解和应用这些策略,可以构建高性能的消息系统。

推荐镜像

更多